我正在使用Microsoft AjaxControlToolkit进行模态弹出窗口。
在模态弹出窗口中,当发生回发时,窗口正在关闭。如何阻止模态弹出窗口的关闭操作?
答案 0 :(得分:11)
将控件放在更新面板中。请参阅我的示例代码,pnlControls是控件,它包含将在弹出窗口中显示的控件:
<asp:Panel ID="pnlControls" runat="server">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="TestButton" runat="server" Text="Test Button" onclick="TestButton_Click" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
这将为您完成工作:)
祝你好运, Gregor Primar
答案 1 :(得分:7)
您可以在回发期间调用Show()
方法以防止模式弹出窗口关闭
MyModalPopoupExtender.Show()
答案 2 :(得分:4)
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
// reshow
MyModalPopup.Show()
}
}
答案 3 :(得分:1)
我想这可行,但不是我的情况。我有一个在模态弹出窗口中打开的用户控件,这个用户控件使回发本身。所以在那个用户控件中我没有模态弹出属性。
我想,我要为我的用户控件创建一个事件,打开模态弹出窗口的页面必须在此事件中重新打开它。
答案 4 :(得分:1)
就像你已经知道的那样,模态弹出窗口只是客户端,是的,你可以在回发期间收集信息,但如果你做回发,他会100%隐藏时间。
当然,和其他提议一样,你可以在回发期间做一个.show,但这取决于你需要做什么。
实际上,我不知道为什么你需要一个回发,如果它是为了一些验证尝试在客户端做。
你能告诉我们为什么你需要做回发,也许我们可以帮助你更好! :)
答案 5 :(得分:1)
遵循先前的案例......
在Simple.aspx中,用户必须输入公司名称。如果用户不记得公司名称,他可以点击一个按钮,打开一个弹出模式窗口。
我想在模态窗口中执行的操作是允许用户搜索公司列表。他可以输入部分名称并单击搜索。匹配将显示在下面的列表中。他可以单击列表中的项目并返回。如果公司不存在,他可以点击“新建”按钮创建一个新公司。
所以,正如你所看到的,我想在这个模态窗口中有很多功能。
谢谢!
JC
答案 6 :(得分:1)
在回发期间保持模态打开时遇到同样的问题。
我的解决方案:
使用EventTarget确定回发是否来自模态中的控件,如果是,则保持模型打开。如果模态打开,回发可以来自模态中的控件。
在包含模态的页面控件的加载事件中。确定回发是否来自 我的孩子。确定它是否来自模态面板中的控件。
Protected Sub Control_Load(sende As Object, e As EventArgs) Handles Me.Load
If IsPostBack Then
Dim eventTarget As String = Page.Request.Params.Get("__EventTarget")
Dim eventArgs As String = Page.Request.Params.Get("__EventArgument")
If Not String.IsNullOrEmpty(eventTarget) AndAlso eventTarget.StartsWith(Me.UniqueID) Then
If eventTarget.Contains("$" + _credentialBuilder.ID + "$") Then
' Postback from credential builder modal. Keep it open.
showCredentialBuilder = True
End If
End If
End If
End Sub
在预渲染中检查我的旗帜并手动显示模态
Protected Sub Control_PreRender(ByVal sende As Object, ByVal e As EventArgs) Handles Me.PreRender
If showCredentialBuilder Then
_mpeCredentialEditor.Show()
End If
End Sub