C# 将值从aspx页传递到其用户控件
我正在尝试将值从我的aspx页面传递到ascx(用户控件)。因此,我在用户控件中创建了一个属性,并在页面的页面加载时对其进行初始化,当我调试它时,我看到该属性在aspx页面的页面加载中被分配,但在用户控件中它为null 页面aspx页面:C# 将值从aspx页传递到其用户控件,c#,asp.net,user-controls,C#,Asp.net,User Controls,我正在尝试将值从我的aspx页面传递到ascx(用户控件)。因此,我在用户控件中创建了一个属性,并在页面的页面加载时对其进行初始化,当我调试它时,我看到该属性在aspx页面的页面加载中被分配,但在用户控件中它为null 页面aspx页面: private string _id; public string Id { get { return _id; } set { _id = value; }
private string _id;
public string Id
{
get { return _id; }
set { _id = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
Id = "ASPX1";
Pageascx g = new Pageascx();
g.PageTitle = Id;
}
Pageascx.ascx My usercontrol(此用户控件用于My Pageaspx.aspx)
您不应该在页面的
Page\u Load
方法中将新的usercontrol初始化为局部变量。相反,如果要动态添加,应该使用Page.LoadControl(“UserControlName.ascx”)
。否则,如果它位于页面顶部,则可以直接访问它;如果它位于子控件(如GridViewRow
)中,则可以通过control.FindControl(“UserControlID”)
访问它
因此,如果以声明方式添加它(在aspx代码上),这应该可以:
userControlID.PageTitle = Id;
但请注意,所有变量或控件都是在页面生命周期结束时处理的。您需要一种方法,否则PageTitle
在下一次回发时为空。您可以使用诸如标签
、文本框
、隐藏字段
或视图状态
/会话等控件
userControlID.PageTitle = Id;