我试图使默认的模式框必须可以从应用程序的任何部分访问,并且需要在任何页面内部随时调用。 (必须从代码隐藏中调用)。调用(显示)位于MasterPage中的模式弹出窗口从它的孩子
所以我想出了一个Panel + modalPopupExtender置于MasterPage中,并通过代码隐藏从子页面调用它的想法。
我该怎么做?或者也许你们有更好的主意来解决这个问题。
我试图使默认的模式框必须可以从应用程序的任何部分访问,并且需要在任何页面内部随时调用。 (必须从代码隐藏中调用)。调用(显示)位于MasterPage中的模式弹出窗口从它的孩子
所以我想出了一个Panel + modalPopupExtender置于MasterPage中,并通过代码隐藏从子页面调用它的想法。
我该怎么做?或者也许你们有更好的主意来解决这个问题。
由于模式是从后面的代码调用,就可以实现像这样
的方法添加到您的母版页
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);
}
我推荐使用基类为哟你的页面,这样你就不必复制上述方法。
这将肯定工作,如果我使用modalPopupExtender,但如果我想显示一些其他面板或div,使用类似ajax(updatepanels将无法正常工作,因为触发器'吨在同一页)? – 2010-06-08 15:30:12
这是真的。您可以创建一个用户控件,利用共享的JavaScript代码来使用AJAX提取内容并以弹出模式显示它们。 – ctorx 2010-06-15 15:47:54
将方法添加到您的母版页。例如:
public void ShowMpSignup4free()
{
mpSignup4free.Show();
}
然后从代码调用此方法页面背后这样的:
protected void lbSignin_Click(object sender, EventArgs e)
{
MasterPages_WebMasterPage wm = (MasterPages_WebMasterPage)(this.Master);
wm.ShowMpSignup4free();
}
这里mpSignup4free被ModelPopupExtender和MasterPages_WebMasterPage的ID是主页的名称(WebMasterPage被主页的名称放置在MasterPages文件夹中,这就是为什么母版页的完整名称是MasterPages_WebMasterPage)。
和lbSignin是主页面为WebMasterPage的页面上的链接按钮,其单击事件将显示模型弹出窗口。
为了避免回后放在UpdatePanel中的lbSignin链接按钮...
如果这种行为方式不同,比如,重定向到另一个页面,一旦对话已经处理了回来?或者我感到困惑,并且“代码隐藏”是指页面中的一些JavaScript? – Jens 2010-06-02 14:13:58
只是想显示一个模式框,用户可以阅读,然后关闭。 (后面的代码= .cs文件) – 2010-06-02 14:19:12