我想在运行时使用另一个页面添加一个aspx页面。 我知道更好的解决方案是使用usercontrol,但为此我必须将我的aspx页面的所有元素放在用户控件和放大器中。这样做几页。 是不是有办法在其他页面中加载aspx页面,如用户控件? 另外,我想让所有字段只读取附加页面的所有字段。有没有办法可以做到这一点?
如果usercontrol是唯一的方法,那么我有一个查询。 当我在我的PageLoad事件中加载我的userControl时,我无法将控件转换为我的usercontrol名称,&因为我无法设置我的控制属性。 我想这样做,但这会在编译时出错:
MyControl myUserControl =(MyControl)Page.LoadControl("~/Controls/MessageControl.ascx");
这里MyControl
不可用(编译器无法识别)我在MyControl上尝试Ctrl+Dot
,编译器也没有添加任何引用,它给出了以下错误
类型或命名空间名称' MyControl'找不到(是你吗? 缺少using指令或程序集引用?)
当我这样做时,它有效:
var ctrl = LoadControl("~/Controls/MessageControl.ascx");
MyPlaceholder.Controls.Add(ctrl);
但现在没有ctrl,这阻止我设置我的用户控件的属性。
是否重要如果我在Page_Init中实例化控件而不是Page_load?因为在Page_Init中我无法进行数据库调用,所以可能在Page_Init中没有加载assembly / db配置..