Sitecore:如何在“常规链接”字段中输入课程

时间:2014-11-25 21:19:32

标签: sitecore sitecore7 sitecore7.2

General Link字段中,作者将设置一些课程。

我想在渲染时更改类,因此我使用了反射器并获得了Link.cs的代码并尝试扩展PopulateParameters方法,看起来像this.CssStyle和{{1总是空白的。有没有办法在this.CssClass字段中输入类的值?

enter image description here

1 个答案:

答案 0 :(得分:5)

将您的字段转换为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" />