简体   繁体   中英

Change panel “visible” property on MasterPage from Child pages

I want to show some panel with a label, both located on a MasterPage, from inside it's child pages.. I already did the coding on the MasterPage:

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

Then I make the calls from child pages:

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

This "works" ok, but it won't show nothing, since I need the page to be "refreshed" in an "ajax-way" like an UpdatePanel, which I can't use because the Trigger is in another page, right?

I really need this to work.. even if you have another completely different way to do this, I would appreciate.

您必须将面板放置在UpdatePanel(有条件的UpdateMode)中,并在ShowPanel中调用其Update方法

您是否考虑过让母版页只为标签放置一个占位符,但是让每个子页面在该占位符中放置自己的内容标签,然后对其进行完全控制?

you can subClass your page, and expose a property say.. MyPage.FooVisible

than in your masterPage, you can:

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

in your page you can handle that any way you like,

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

pseudo code of course :)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM