如何在webform的cs文件当中实例化一个usercontrol
当前定义了一个public partial class ConfigureControl : System.Web.UI.UserControl{..........}的usercontrol
另外一个页面假设要在运行时实例化该usercontrol应该如何做..
我用了两种方法..一个是使用ASP命名空间
aspx页面当中:
ASP.configureControl control1 = new ASP.configureControl ();
//修改他的的公共属性
control1.property1 = "test ";
Control control = (Control)control1;
this.Controls.AddAt(0, control);
该方法在开发的时候没有任何问题..可以顺利编译..但是在发布网站的时候.报错. 缺少引用ASP.configureControl 不解..
第二种方法..直接使用ConfigureControl control1 = new ConfigureControl ();
//修改他的的公共属性
control1.property1 = "test ";
Control control = (Control)control1;
this.Controls.AddAt(0, control);
该方法在编译和发布的时候都没有问题..但是奇怪的是在访问页面的时候报错.. "Object reference not set to an instance of an object "
说我没有实例话对象..
完全就没有折了...
我知道windowsForm下面可以直接将usercontrol实例化,并且使用form的Controls.Add方法..但是webform下面就出现了刚才的问题...
不知道各位是怎么解决这个问题..
希望能够在cs文件当中用代码的方式实例话usercontrol.
还有一个问题..关于url rewrite的问题.
使用HttpContext.Current.RewritePath(newurl);也是.在开发的时候重写url地址没有任何问题.但是一旦部署到仅仅安装了IIS和.net Framework2.0的机器上就会出现405没有权限的错误...
------解决方案--------------------mark
------解决方案--------------------ConfigureControl ctl = (ConfigureControl)Page.LoadControl( "~/Controls/ConfigureControl.ascx ");
什么假设的你的ConfigureControl.ascx文件是在根目录的Controls下。
调用的时候保证路径的正确性
------解决方案--------------------友情UP
------解决方案--------------------UC 无法直接实例化,请使用 Page.LoadControl 加载之
ConfigureControl ctl = Page.LoadControl( "~/ConfigureControl.ascx ") as ConfigureControl; // 假设 ConfigureControl.ascx 在根目录
------解决方案--------------------同意楼上的
使用Page.LoadControl加载用户控件
------解决方案--------------------又是app_code惹出来的毛病,
解决方案http://www.cnblogs.com/myzerg/archive/2007/01/05/613009.html
------解决方案--------------------ConfigureControl ctl = (ConfigureControl)Page.LoadControl( "ConfigureControl.ascx ");
ASCX要动态添加 是不能NEW的
------解决方案--------------------不要实例化 用 LoadControl
------解决方案--------------------ConfigureControl ctl = (ConfigureControl)Page.LoadControl( "ConfigureControl.ascx ");
原理性错误,不要使用new