如何在ASP.NET中添加用户控件的运行时间?

Ahm*_*med 5 c# asp.net user-controls

如何在ASP.NET中动态添加用户控件?

我有一个div ID="contentData"和几个控件

  • one.ascx
  • two.ascx
  • three.ascx

现在我创建了一个页面default.aspx,它可以通过以下方式之一获取查询字符串中的参数:

default.aspx?val=one  
default.aspx?val=two  
default.aspx?val=three
Run Code Online (Sandbox Code Playgroud)

我从中获取价值

Request.QueryString["val"]
Run Code Online (Sandbox Code Playgroud)

现在我如何在此加载特定控件?

<div ID="controlData"></div>
Run Code Online (Sandbox Code Playgroud)

Jef*_*ner 16

在你的aspx中

<div id="div1" runat="server">

</div>
Run Code Online (Sandbox Code Playgroud)

在Page_Load中

    UserControl uc = (UserControl)Page.LoadControl("test.ascx");
    div1.Controls.Add(uc);
Run Code Online (Sandbox Code Playgroud)

你需要做的就是通过添加runat ="server"使你的div服务器绑定,并在代码隐藏中使用Page.LoadControl来取出你的用户控件,然后使用div的Controls.Add将它添加到你的div中

  • 也可以用Panel替换div,以便更容易与服务器上的实例进行映射(在某些情况下,当runat = server添加到html元素时,VS不会自动生成成员).根据查询中的值构建ascx的路径.验证或包装在try-catch中; 处理不存在.对于通用控件放置,以"〜"字符开头构建路径(例如"〜/ controls /"+ this.Request.QueryString ["val"] +".ascx") - 但是,再次验证查询中的值. (3认同)