如何在页面上动态管理UserControl…
本文关键字:动态 管理 UserControl | 更新日期: 2023-09-27 18:19:12
我的场景是这样的,
我必须使一个管理页面(标题部分),我必须从我的下拉列表....选择单个或多个用户控制
将动态添加到页面中....
我该怎么做呢?
目前我的想法是这样的
当有人从下拉列表中选择并添加用户控件时,我会在文本区域中添加usercontrols标签并将其保存在db…
,当网站索引页被调用时,标题部分将从数据库中呈现并显示..
但是我应该如何管理控制标签,它应该放在索引页面的顶部。Aspx同时渲染它??
我知道在某些时候很难理解,但如果你对我的问题有任何疑问,我会尽我最大的努力回复
照顾如果我得到你的问题正确,没有必要在数据库中存储标签或任何东西。只是控件的名称和路径(记住用户控件只能从同一个项目加载),你想加载。下面是动态加载用户控件的代码示例。
<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
}
}
希望有帮助,谢谢