我正在尝试基于 TreeListEx 字段创建自定义字段,参考本文中使用 TreeList 创建自定义字段的方式:
http://sdn.sitecore.net/Scrapbook/Custom%20TreeList%20that%20supports%20query.aspx
基本上,我需要能够在源字段中启用查询语法。有没有办法这样做?
不确定LuceneTreeListEx是否会节省您的开发时间。但是要回答您的问题,应该只是创建一个从 TreeListEx 控件继承的类并重写 Source 属性的情况,如该示例中所示。
本质上,您正在剥离query:
并将其传递给database.SelectItems()
方法。
你可能想看看Retroor/DotPeek等中的TreeListEx,看看它目前是如何工作的。
好的 - 所以,解决了这个问题。ItemID 在 treelistex 类中不作为属性提供,但它可用作值,并且该值位于视图状态中。因此,您真正需要做的就是在 itemID 属性中公开视图状态,并像在树列表控件中一样使用它。
public string ItemID
{
get
{
return StringUtil.GetString(this.ViewState["ItemID"]);
}
set
{
Sitecore.Diagnostics.Assert.ArgumentNotNull(value, "value");
this.ViewState["ItemID"] = value;
}
}