0

Test.aspx と MyControl.ascx の 2 つのファイルがあります。

Test.aspx の html:

<MyControl>
  <MyTemplate>
     <div>sample text, other controls</div>
 </MyTemplate>
</MyControl>

MyControl.ascx.cs:

[ParseChildren(ChildrenAsProperties=true)]
[PersistChildren(true)]
public class MyControl:Control
{
    [Browsable(true)]
    public ITemplate MyTemplate{ get; set; }
    protected override void OnLoad(EventArgs e)
    {
        //get the template html, but how to get???
        var templateHtml = this.MyTemplate.ToString();
    }
}

MyControl.ascx.cs 内の分離コードから<MyTemplate>タグ ( )の内容を取得したいと考えています。<div>sample text, other controls</div>

誰が私を助けることができます?ありがとう。

4

1 に答える 1

2

div次のようにサーバー側のコントロールを作成する必要があります。

<MyControl>
  <MyTemplate>
     <div runat="server" id="divContent">sample text, other controls</div>
 </MyTemplate>

さて、コード ビハインドでは、これがどのような種類のコントロールであり、その div がどのようにレンダリングされるかに応じて、次のようなことができるはずです。

var innerHtml = yourControl.FindControl("divContent").InnerHtml;

繰り返しますが、これは div がどのようにレンダリングされるかによって異なります。行内にある場合 (コントロールがある種のリストであると仮定)、行への参照を取得してから行を呼び出す必要がありますFindControl("divContent")

于 2013-05-23T02:36:26.033 に答える