动态加载用户控件
如何在页面中动态加载用户控件?
我有一个包含radioButtons的页面。 每次单击单选按钮都会在页面中加载用户控件(.ascx)。
我正在做的是同时加载所有控件,但将其可见性设置为false。 当用户单击radiobutton时,我将特定用户控件的可见性设置为true。
因此,我在每个回发上加载所有用户控件。
有没有其他可能的方法这样做?
例如,在页面上添加一个带有runat服务器的div,其id为“divControls”。
Asp允许您动态加载用户控件“.ascx”。
以下代码应该可以解决您的问题。
Control ctrl = Page.LoadControl("UserControlPath"); divControls.Controls.Clear(); divControls.Controls.Add(ctrl);
如果你没有将它们保存在列表中,并且在会话中列出该列表,那么你将遇到很多麻烦。
Ghyath的方式是正确的方式,但你也应该将它们添加到List。
List
在每个回发中,您需要使用列表中的控件重新加载div。 编辑:我已经纠正了最后一行。
是否有任何具体原因将用户控件保存在单个页面中?
在加载所有控件并设置其可见性时,请考虑页面视图状态。
我认为有两种可能的解决方案:
-
创建托管页面托管不同的用户控件,当用户单击某个单选按钮时,重定向到相应的页面。
-
按需加载,即当用户请求用户控件时,只加载它但删除所有其他加载的用户控件,因此页面随时只有一个用户控件。
- 使用Share Api发布到Linkedin
- 无法加载文件或程序集“AxInterop.WMPLib”或其依赖项之一。 参数不正确。
- 如何检测现有文件导致的System.IO.IOException?
- 扩展的WPF工具包 – 如何添加对项目的引用?
- 当Session.Abandon()不起作用时,如何以编程方式结束asp.net中的会话?
- 带有MVC3和EF4 CTP5w的JSON序列化的循环引用exception
- 尝试从Web应用程序访问报告服务时,Internet Explorer会导致IIS 500错误
- 将图像文件保存到sql Server并将字节数组转换为图像
- 云网络服务器上的wkhtmltopdf.exe System.Security.SecurityException。 如何覆盖服务器安全策略