我在 Telerik 的 RadGrid 控件中添加了一个名为 SearchMenuTemplate ala 的 ITemplate:
public class AbsRadGrid : RadGrid
{
private ITemplate _ItemTemplate;
[PersistenceMode(PersistenceMode.InnerProperty)]
[TemplateContainer(typeof(searchBar))]
public ITemplate SearchMenuTemplate
{
get { return _ItemTemplate; }// get
set { _ItemTemplate = value; }// set
}
}
模板类看起来像(为简洁起见,省略了像 createchildcontrol 这样的强制覆盖方法):
[ParseChildren(true)]
class searchBar : CompositeControl, INamingContainer
{
public string rbStartsWithText { get; set; }
}
现在,在源代码控制窗口中,RadGrid 控件看到了模板。但是 rbStartsWithText 不是节点上的属性。
我想看到这样的东西(注意:abs 前缀是在标记中注册的):
<abs:AbsRadGrid ID="rg" runat="server">
<SearchMenuTemplate rbStartsWithText="Starts With" />
</abs:AbsRadGrid>
相反,rbStartsWithText 抛出一个绿色波浪形并告诉我它不是 SearchMenuTemplate 的有效属性。