C# 动态加载用户控件
如何在页面中动态加载用户控件?C# 动态加载用户控件,c#,asp.net,user-controls,C#,Asp.net,User Controls,如何在页面中动态加载用户控件? 我有一个包含单选按钮的页面。每次单击单选按钮都会加载页面中的用户控件(.ascx)。 我正在做的是同时加载所有控件,但将其可见性设置为false。当用户单击单选按钮时,我会将特定用户控件的可见性设置为true。 因此,我将在每次回发时加载所有用户控件。 有其他可能的方法吗?例如,在id为“divControls”的页面上添加一个带有runat server的div Asp允许您动态加载用户控件“.ascx” 下面的代码应该可以解决您的问题 Control ctrl
我有一个包含单选按钮的页面。每次单击单选按钮都会加载页面中的用户控件(.ascx)。
我正在做的是同时加载所有控件,但将其可见性设置为false。当用户单击单选按钮时,我会将特定用户控件的可见性设置为true。
因此,我将在每次回发时加载所有用户控件。
有其他可能的方法吗?例如,在id为“divControls”的页面上添加一个带有runat server的div Asp允许您动态加载用户控件“.ascx” 下面的代码应该可以解决您的问题
Control ctrl = Page.LoadControl("UserControlPath");
divControls.Controls.Clear();
divControls.Controls.Add(ctrl);
在一个页面中保存usercontrols有什么具体的原因吗 在加载所有控件并设置其可见性时,请考虑页面视图状态 我认为有两种可能的解决办法:
如果你不把它们列在一个列表中,并且在会话中列出,你会有很多麻烦 Ghyath的方法是正确的,但你也应该将它们添加到列表中
List<Object> Usercontrols = new List<Objects>{};
Control ctrl = Page.LoadControl("UserControlPath");
Usercontrols.Add(ctrl);
Session["Usercontrols"] = Usercontrols;
List Usercontrols=新列表{};
Control ctrl=Page.LoadControl(“UserControlPath”);
Usercontrols.Add(ctrl);
会话[“用户控件”]=用户控件;
在每次回发时,需要使用列表中的控件重新加载div。
编辑:我已经更正了最后一行。如果您想要一个选项卡式界面,每个选项卡都有一个用户控件支持,单选按钮在选项卡之间切换,这是一个很好的答案。