虽然它(我们不希望Sitecore开发人员浪费时间在部分名称上),我认为包含这样的内容确实很有意义。 让我列出这是一个功能请求。
如果你想知道这个工作权利,你应该先了解fieldRenderer是如何工作的。它启动了一个名为'renderField'的管道。 在这第二个步骤,它的读取fieldValue方法:
替换一个与自己的自定义类是这样的:
public void Process(RenderFieldArgs args)
{
Assert.ArgumentNotNull(args, "args");
if(args.RawParameters.Contains("Section"))
{
//Parse args.RawParameters
//Extract Section data
//Take args.Item.Template
//Resolve section
//Resolve fieldvalue
//Set this field value as args.Results.FirstPart
}
if (!string.IsNullOrEmpty(args.FieldValue))
{
args.Result.FirstPart = args.FieldValue;
}
else
{
args.Result.FirstPart = args.Item[args.FieldName];
}
}
东西中的行:
args.Result.FirstPart = args.Item[args.Item.Template.GetSection("sectionName").GetField(args.FieldName).ID];
但现在用错误检查:)
在我们的项目中,我们已经超载Sitecore的用户控件,以便将这个代码将在公园散步。谢谢Alex。 – Zooking 2010-03-10 21:51:00