从子页面更改母版页上的面板“可见”属性

时间:2010-06-11 16:48:15

标签: c# asp.net visual-studio-2008 asp.net-ajax

我想在其子页面内显示一些带有标签的面板,这两个面板都位于MasterPage上。我已经在MasterPage上进行了编码:

public class MyMaster : MasterPage
{
     public void ShowPanel(string pMessage)
     {
          labelInside.Text = pMessage;
          myPanel.visible = true;
     }
}

然后我从子页面进行调用:

public void ShowPanel(string pMessage)
{
     MyMaster masterPage = this.Master as MyMaster;
     masterPage.ShowPanel(pMessage);
}

这“工作”没问题,但它不会显示任何内容,因为我需要在“ajax-way”中像“UpdatePanel”那样“刷新”页面,我无法使用,因为触发器在另一个页面,对吗?

我真的需要这个工作..即使你有另一种完全不同的方式来做这件事,我也会很感激。

3 个答案:

答案 0 :(得分:1)

您必须将面板置于UpdatePanel(UpdateMode条件)内,并在ShowPanel中调用其Update method

答案 1 :(得分:0)

您是否考虑让母版页只有标签的占位符,但是让每个子页面都将自己的内容标签放在该占位符中,然后它就可以完全控制?

答案 2 :(得分:0)

你可以对你的页面进行子类化,并公开一个属性说.. MyPage.FooVisible

比在您的masterPage中,您可以:

myPage = this.Page as MyPage
if (myPage != null) myPage.FooVisble = false;

在您的页面中,您可以按照自己喜欢的方式处理,

FooVisible {
set { SomeElement.Visible = value; }
}

伪代码当然:)