如何在页面上动态管理UserControl…

本文关键字:动态 管理 UserControl | 更新日期: 2023-09-27 18:19:12

我的场景是这样的,

我必须使一个管理页面(标题部分),我必须从我的下拉列表....选择单个或多个用户控制

将动态添加到页面中....

我该怎么做呢?

目前我的想法是这样的

当有人从下拉列表中选择并添加用户控件时,我会在文本区域中添加usercontrols标签并将其保存在db…

,当网站索引页被调用时,标题部分将从数据库中呈现并显示..

但是我应该如何管理控制标签,它应该放在索引页面的顶部。Aspx同时渲染它??

我知道在某些时候很难理解,但如果你对我的问题有任何疑问,我会尽我最大的努力回复

照顾

如何在页面上动态管理UserControl…

如果我得到你的问题正确,没有必要在数据库中存储标签或任何东西。只是控件的名称和路径(记住用户控件只能从同一个项目加载),你想加载。下面是动态加载用户控件的代码示例。

  <asp:DropDownList ID="userControlSelection" runat="server" AutoPostBack="true"
    onselectedindexchanged="userControlSelection_SelectedIndexChanged">
      <asp:ListItem Value="1">User Control One</asp:ListItem>
      <asp:ListItem Value="2">User Control Two</asp:ListItem>
</asp:DropDownList>
<asp:Panel ID="controlHolder" runat="server" ></asp:Panel>

在代码后面的重要部分是"this.LoadControl("~/WebUserControl2.ascx");"有关加载用户控件的更多信息,请参阅本文动态创建用户控件

protected void userControlSelection_SelectedIndexChanged(object sender, EventArgs e)
    {
        Control c = null;
        if (userControlSelection.SelectedValue == "1")
        {
            c = this.LoadControl("~/WebUserControl1.ascx");
        }
        else if (userControlSelection.SelectedValue == "2")
        {
            c = this.LoadControl("~/WebUserControl2.ascx");                
        }
        if (c != null)
        {
            controlHolder.Controls.Clear();
            controlHolder.Controls.Add(c);
        }
        else
        {
            //Throw some error
        }
    }

希望有帮助,谢谢