读书人

怎么在webform的cs文件当中实例化一个

发布时间: 2012-01-14 20:02:35 作者: rapoo

如何在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

读书人网 >asp.net

热点推荐