【问题标题】:value of Master page label not getting updated form content page母版页标签的值未更新表单内容页
【发布时间】:2012-06-21 16:53:07
【问题描述】:

我有一个内容页面,我正在更新 asp:Label of Master page from content page 的值。值会更新,但更新后的值不可见。 我尝试了两种方法使用

1)。定义一个属性(在母版页上)以设置和获取标签值。 例如

public string setErrorMsg
{        
    get { return lbl1.Text; }
    set { lbl1.Text = value; }
}

2) 通过从内容页面中找到控件(母版页的标签)并设置其文本。 例如

 Label lblMasterError = this.Page.Master.FindControl("lbl1") as Label;
 lblMasterError.Text="text is updated form content page";

如果我在调试模式下看到它,两者都在更新值,但更新的标签值在内容页面上不可见。这种行为的可能原因是什么?

【问题讨论】:

  • 这段代码在哪个事件中?您可能在渲染后设置它。
  • 我正在更新内容页面中按钮单击事件的母版页标签值。

标签: c# asp.net master-pages


【解决方案1】:

我不知道为什么找不到您的标签,但我以前也遇到过同样的情况。这对我有用:

在母版页cs:

public void SetErrorMsg(string ErrorMsg)
{
    this.lbl1.Text = ErrorMsg;
}

来自后面的 aspx 页面代码(用你的替换 myMasterPage 名称):

 ((myMasterPage)Master).SetErrorMsg("Some error text");

【讨论】:

  • 经过大量搜索,我自己解决了这些问题。问题是我正在通过其中包含更新面板的内容页面更新母版页标签。这个问题有两种解决方案。 1)在某些事件上使用更新面板的触发器进行部分回发。或 (2) 如果您不希望页面回发将母版页标签放在更新面板中,并使用更新面板的查找控件属性并调用更新面板 UpdatePanel 的内置更新函数 up_pnl= UpdatePanel)Master.FindControl("UpdatePanel1 ");然后在更新标签文本 up_pnl.update() 后调用。
  • 你好 Muhammad Current 我面临同样的问题。在哪里可以找到更新面板。您是在母版页还是内容页中调用此代码。请把你的代码放在这里。
猜你喜欢
  • 2014-02-02
  • 2015-06-28
  • 1970-01-01
  • 1970-01-01
  • 2011-06-07
  • 1970-01-01
  • 1970-01-01
  • 2013-01-25
  • 2013-02-08
相关资源
最近更新 更多