2014-02-12 32 views
2

我正在按如下所示編程創建一個TemplateItem[TempA]。我必須爲TemplateItem[TempA]分配更多的模板到__Base template。對於一個項目,我們可以創建如下:通過編碼將模板分配給「__Base模板」?

Sitecore.Data.Items.Item myItem = CatalogHome.Add(txtBrandName.Text, sample); 
var baseProductTemplateIds = SelectedProductItems.Select(item => item.ID.ToString()); 
var fieldValue = string.Join("|", baseProductTemplateIds); 
using (new Sitecore.SecurityModel.SecurityDisabler()) 
{ 
    try 
    { 
     myItem.Editing.BeginEdit(); 
     myItem["__Base Template"] = fieldValue; 
     myItem.Editing.EndEdit(); 
    } 
    catch (Exception ex) 
    { 
     Sitecore.Diagnostics.Log.Error("Exception Message: " + ex.Message, this); 
    } 
} 

以上只是一個項目。 TemplateItem如何實現相同?創建templateItem如下:

Sitecore.Data.Items.Item CatalogHome = master.GetItem("/sitecore/templates/User Defined/SC-DW Data/Brand Custom/Product"); 
Sitecore.Data.Items.TemplateItem sample = master.Templates["System/Templates/Template"]; 
Sitecore.Data.Items.Item myItem = CatalogHome.Add(txtBrandName.Text, sample); 

回答

2

TemplateItem類有InnerItem財產引用到樹原Sitecore.Data.Items.Item。您可以編輯此項目和模板將被更新:

Sitecore.Data.Items.TemplateItem sample = master.Templates["System/Templates/Template"]; 
sample.InnerItem.Editing.BeginEdit(); 
sample.InnerItem["__Base Template"] = fieldValue; 
sample.InnerItem.Editing.EndEdit(); 
+0

非常感謝您的幫助 – mark