如何从用户控件更改母版页中的控件值?

时间:2011-07-30 19:51:58

标签: c# .net asp.net

我想从用户控件更改Master页面中存在的控件值,场景如下:
在用户控件加载方法中,我使用一个名为“catID”的查询字符串参数来获取类别实体,然后我想将类别标题设置为标题标签(类别标题)的值,它位于主页面中。
我试图在用户控制页面加载控件中更改标题,但主页面加载方法更早执行。

有什么想法吗?

3 个答案:

答案 0 :(得分:12)

在MasterPage中提供设置标题的公共方法,例如:

public void setTitle(string title)
{
    this.LblTitle.Text = title;
}

然后你可以从你的UserControl调用它(YourMasterPage是MasterPage的实际类型):

((YourMasterPage)this.Page.Master).setTitle("new Title");

答案 1 :(得分:0)

如果它是一个查询字符串参数,您应该能够读取“catId”,即后面的Masterpage代码并设置标题。

编辑:

尝试一个属性然后: 在usercontrol中

protected void Page_Load(object sender, EventArgs e)
{
    this.MyTitle = "SomeTitle";
}
public string MyTitle { get; set; }

在主页上:

protected void Page_Load(object sender, EventArgs e)
{
    WebUserControl.PreRender += new EventHandler(WebUserControl_PreRender);
}

void WebUserControl_PreRender(object sender, EventArgs e)
{
    string str = WebUserControl.MyTitle;
    this.Header.Title = str;
}

答案 2 :(得分:0)

 ((Label)Master.FindControl("loadlbl")).Text = "your text";