代码之家  ›  专栏  ›  技术社区  ›  James Maroney

ASP.NET自定义非自动关闭控件

  •  1
  • James Maroney  · 技术社区  · 16 年前

    构建自定义控件时,如何访问打开和关闭控件标记之间的内容?

    <my:tag runat="server">
     <p>...markup</p>...
    </my:tag>
    

    我目前正在成功地使用Render方法输出任意标记,但似乎无法找到如何访问包含的标记。

    3 回复  |  直到 16 年前
        1
  •  2
  •   naivists    16 年前

    看看 this.Controls . 本文: http://msdn.microsoft.com/en-us/library/system.web.ui.control.controls(VS.71).aspx 声明“在ASP.NET页上,当以声明方式在服务器控件的开始标记和结束标记之间添加控件时,ASP.NET会自动将控件添加到包含该控件的服务器控件的ControlCollection中。”

    <yourcode:yourcontrol id="asdf" runat="server">
      <p id="innerP" runat="server">Text here</p>
    </yourcode:yourcontrol>
    

    this.FindControl("innerP").text="Other text here ,因为P标记是在服务器端生成的。

    runat="server" 在P元素上设置:

    <yourcode:yourcontrol id="asdf" runat="server">
      <p id="innerP">Text here</p>
    </yourcode:yourcontrol>
    

    那你只能找到它 this.controls[0] Literal 控制

        2
  •  0
  •   Astaar    16 年前

    我想你应该这样做:

    <my:tag runtat="server">
        <p><asp:Label id="markupLabel" runat="server"/></p>
    </my:tag>
    

    markupLabel.text = "Foo";
    
        3
  •  0
  •   Yoenhofen    16 年前

    如果将ID添加到my:tag标记,则应该能够使用标记的.controls集合访问其中的控件。