2010-03-10 67 views
2

有沒有一種方法可以將具有多個部分的模板的特定字段名稱獲取到FieldRenderer控件?FieldRenderer - 從不同模板部分獲取特定字段名稱

F.ex.我有一個包含「數據」和「數據2」部分的模板,都有一個名爲「文本」的單一文本字段。有沒有辦法讓我的FieldRenderer獲得部分「數據2」領域「文本」

這將是很好,如果的以下建議之一工作:

<sc:FieldRenderer ID="test" runat="server" FieldName="Text" Section="Data2" /> 

<sc:FieldRenderer ID="test" runat="server" FieldName="Data2/Text" /> 

BR Larre

回答

4

雖然它(我們不希望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]; 

但現在用錯誤檢查:)

+0

在我們的項目中,我們已經超載Sitecore的用戶控件,以便將這個代碼將在公園散步。謝謝Alex。 – Zooking 2010-03-10 21:51:00

0

每官方坐ecore文檔,字段名稱在各個章節中都必須是唯一的。

這還討論here