在 General Link
字段内容作者将设置一些类。
我想在渲染时更改类,所以我使用了反射器并获得了 Link.cs
的代码并尝试扩展 PopulateParameters
方法,看起来 this.CssStyle
和 this.CssClass
总是空白。有没有办法获取在 General Link
字段中输入的类的值?
最佳答案
将您的字段转换为 LinkField
类并使用 Class
属性:
LinkField field = Sitecore.Context.Item.Fields["Link"];
string cssClass = field.Class;
**编辑: **
如果要更改 Sitecore
sc:link
的行为以更改每个链接的 css 类,则需要将自己的处理器添加到 renderField
管道:public class UpdateLinkClass
{
public void Process(Sitecore.Pipelines.RenderField.RenderFieldArgs args)
{
if (args != null && (args.FieldTypeKey == "link" || args.FieldTypeKey == "general link"))
{
Sitecore.Data.Fields.LinkField linkField = args.Item.Fields[args.FieldName];
if (!string.IsNullOrEmpty(linkField.Class))
{
args.Parameters["class"] = linkField.Class + "-custom";
}
}
}
}
并在
GetLinkFieldValue
处理器之前注册它:<processor type="My.Assembly.Namespace.UpdateLinkClass, My.Assembly" />
<processor type="Sitecore.Pipelines.RenderField.GetLinkFieldValue, Sitecore.Kernel" />
关于Sitecore:如何在常规链接字段中输入类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27136867/