0

我试图弄清楚是否可以ITemplate在自定义控件中使用该界面。这是我到目前为止所做的。

public class Tooltip : Control
{
    public ITemplate ContentTemplate { get; set; }

    protected override void CreateChildControls()
    {
        base.CreateChildControls();

        var ctrl = new HtmlGenericControl("a");

        if (ContentTemplate != null)
        {
            ContentTemplate.InstantiateIn(ctrl);
        }

        this.Controls.Add(ctrl);
    }
}

asp.net控件用法

<gc:Tooltip runat="server">
    <ContentTemplate>
        hello
    </ContentTemplate>
</gc:Tooltip>

这个想法是它应该返回这样的东西

<a>hello</a>

但结果看起来像这样

<ContentTemplate>
  hello
</ContentTemplate>
<a></a>

它确实包含模板标签,并且似乎忽略了我所做的任何事情。

任何建议表示赞赏

4

2 回答 2

0

我认为你应该看看这里并按照他们已经说过的那样做。

你错过了这个:

  [
      PersistenceMode(PersistenceMode.InnerProperty),
      TemplateContainer(typeof(TemplateItem))
  ]

而且你应该在你的班级设置这部分:

[ParseChildren(true)]
于 2012-11-18T17:42:04.503 回答
0

我从错误的类继承,当切换到 WebControl 时它开始工作

public class Tooltip : WebControl
于 2012-11-18T17:49:17.510 回答