1
這是我的原則Sitecore規則不會將數據源設置爲其他項目?
其中用戶配置文件fb_likes字段包含Sitecore的
組數據源TestItem2
我申請這個規則對模板的標準值的sublayout,但這個規則永遠不會改變數據源。
我自己也嘗試這個條件
其中true(操作始終執行)。
但同樣沒有運氣,
如果我改變行動
隱藏渲染
它工作正常。
我在做什麼錯在這裏?
這是我的原則Sitecore規則不會將數據源設置爲其他項目?
其中用戶配置文件fb_likes字段包含Sitecore的
組數據源TestItem2
我申請這個規則對模板的標準值的sublayout,但這個規則永遠不會改變數據源。
我自己也嘗試這個條件
其中true(操作始終執行)。
但同樣沒有運氣,
如果我改變行動
隱藏渲染
它工作正常。
我在做什麼錯在這裏?
你的sublayout的代碼在上下文項目上設置時是否允許使用數據源?您可以通過多種方式實現此目的。 E.g在基類:
protected string DataSource
{
get
{
var sublayout = Parent as SublayoutBase;
return sublayout == null ? string.Empty : sublayout.DataSource;
}
}
protected Item DataSourceItem
{
get
{
return string.IsNullOrEmpty(DataSource)
? Sitecore.Context.Item
: Sitecore.Context.Database.GetItem(DataSource) ?? Sitecore.Context.Item;
}
}
內。然後你對你的sublayout代碼使用DatSourceItem而不是上下文項顯示的內容。我已經看到了這一點做的另一種方法是:
protected override void Render(HtmlTextWriter writer)
{
if (this.DataSourceItem != null)
using (new Sitecore.Data.Items.ContextItemSwitcher(this.DataSourceItem))
{
base.Render(writer);
}
else
{
base.Render(writer);
}
}
使用這一切你sublayouts,在它們的基類將會原生支持的數據源,即使代碼是針對上下文項書面繼承這一點。