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

間違ったクラスから継承していました。WebControl に切り替えると、機能し始めました

public class Tooltip : WebControl
于 2012-11-18T17:49:17.510 に答える
0

ここを見て、彼らがすでに言ったとおりにすべきだと思います。

あなたはこれを見逃しました:

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

また、クラスにこの部分を設定する必要があります。

[ParseChildren(true)]
于 2012-11-18T17:42:04.503 に答える