我在页面上动态加载用户控件,工作正常。但是我遇到了一个问题:
如果我在设计时拥有用户控件,则相同的代码可以正常工作。
代码是这样的:
页:
MyUserControl cntrl = Page.LoadControl("~/MyUserControl.ascx")
btn_click(){
{
cntrl.TestFunction();
}
用户控制:
class MyUserControl: UserControl
{
//Variable
string org="";
Page_Load()
{
org="test";
}
TestFunction()
{
//The value of org variable is empty here.
//It should however be "test" which i have set in page_load
}
}
答案 0 :(得分:1)
"代码是这样的:" - 在提供代码(甚至是片段)时,尝试使其符合语言语法 - 在本例中为C#。
为了激活MyUserControl.Page_Load
,您必须将用户控件添加到页面的控制树中:
MyUserControl cntrl = (MyUserControl)Page.LoadControl("~/MyUserControl.ascx");
Panel1.Controls.Add(cntrl);
Page_Load
方法必须具有非常特定的签名和范围:
class MyUserControl: UserControl
{
string org="";
protected void Page_Load(object sender, EventArgs e)
{
org="test";
}
}