从其子节点调用(显示)位于母版页中的模态弹出窗口

时间:2010-06-02 14:01:08

标签: c# asp.net ajaxcontroltoolkit modalpopupextender

我正在尝试创建一个必须可以从应用程序的任何部分访问的默认模式框,并且需要在任何页面内部随时调用。 (必须从代码隐藏调用。)

所以我提出了放置在MasterPage中的Panel + modalPopupExtender的想法,并通过代码隐藏从子页面调用它。

我该怎么做?或许你们有更好的想法来解决这个问题。

2 个答案:

答案 0 :(得分:3)

由于要从后面的代码调用模态,你可以像这样实现它

在母版页中添加方法

public class MyMaster : MasterPage
{
     public void ShowModal(string someParameter)
     {
          // Do your logic here
          // Show the modal
     }
}

然后在您的页面或页面基础上添加一个方法......

public void ShowModal(string someParameter)
{
     MyMaster masterPage = this.Master as MyMaster;
     masterPage.ShowModal(someParameter);
}

我建议您为页面使用基类,这样就不必复制上述方法。

答案 1 :(得分:1)

在您的母版页面添加方法。例如:

public void ShowMpSignup4free()
{
    mpSignup4free.Show();
}

然后从代码隐藏页面调用此方法,如下所示:

protected void lbSignin_Click(object sender, EventArgs e)
{
    MasterPages_WebMasterPage wm = (MasterPages_WebMasterPage)(this.Master);
    wm.ShowMpSignup4free();
}

这里mpSignup4free是ModelPopupExtender的ID,MasterPages_WebMasterPage是母版页的名称(WebMasterPage是放置在MasterPages文件夹中的母版页的名称。这就是为什么母版页的完整名称是MasterPages_WebMasterPage。)

和lbSignin是页面上的链接按钮,其主页面是WebMasterPage,其点击事件将显示模型弹出窗口。

为了避免回发,请在UpdatePanel中放置lbSignin链接按钮...