how to add a user control to a panel in a web form?在页面中添加控件或自定义控件
如下得方式可以加入控件
1. 如果你再页面中已经注册了控件,就像:
<%@ Register Src="../UserControl/UploadImg_WebUserControl.ascx"
TagName="UploadImg_WebUserControl"
TagPrefix="uc1" %>
你可以:
UserControlName obj = new UserControlName(); //creating object for User control
Panel1.Controls.Add(obj)
2. 如果在页面中还没有注册,那么你需要这样去做:
UserControl xy = new UserControl()
xy.LoadControl("virtual path of the use control")
Panel1.Controls.Add(xy)
3.如果你在自定义控件中放置了加载得项目,比如:
Update panel或者FileUpload以及类似的控件,你需要在Placeholder完成追加:
PlaceHolder pl = new PlaceHolder()
UserControl x = new UserControl()
pl.Controls.Add(x)
Panel1.Controls.Add(pl)
再谈Panel和PlaceHolder的区别
这两个确实都是容器
pannel控件内可以放置任何内容,可能通过enable或visable属性设置控件内容的是否允许操作或是否可以显示,但容器里面的内容不能动态加载!
而placeholder控件可以动态加载相应的ascx用户控件。例如:
PlaceHolder1.Controls.Add(LoadControl("~/UserControl/UploadImg_WebUserControl.ascx"))
总结最明显的区别就是:前者不可以动态加载相应的文件,而后者可以根据条件动态加载相应的文件或内容