我正在使用微软的AjaxControlToolkit实现模态弹出窗口。
在模态弹出窗口中,当发生回发时,窗口会关闭。如何防止模态弹出窗口关闭的操作?
我正在使用微软的AjaxControlToolkit实现模态弹出窗口。
在模态弹出窗口中,当发生回发时,窗口会关闭。如何防止模态弹出窗口关闭的操作?
将您的控件放在UpdatePanel中。请参阅我的示例代码,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
Show()
方法,以防止模态弹出窗口关闭。MyModalPopoupExtender.Show()
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
// reshow
MyModalPopup.Show()
}
}
我曾经遇到过相同的问题,即在postbacks期间保持模态框打开。
我的解决方案:
使用EventTarget来确定postback是否来自模态框中的控件,并且如果是,则保持模态框打开。当且仅当模态框打开时,postback才可能来自模态框中的控件。
在包含模态框的页面控件的load事件中,确定postback是否来自我的子级。 确定它是否来自模态面板中的控件。
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
根据之前的情况...
在 Simple.aspx 中,用户必须输入公司名称。如果用户不记得公司名称,他可以点击一个按钮打开弹出式模态窗口。
我想在模态窗口中允许用户搜索公司列表。他可以输入部分名称并单击搜索。匹配项将显示在列表下方。他可以单击列表中的项目并返回。如果公司不存在,他可以单击“新建”按钮创建一个新公司。
因此,可以看出,我想在这个模态窗口中提供许多功能。
谢谢!
JC
就像你可能已经知道的那样,模态弹出窗口仅在客户端上运行。是的,在postback期间可以在其中收集信息,但如果进行postback,它将100%隐藏。
当然,像其他提议的方法一样,在postback期间可以执行.show,但这取决于您需要做什么。
实际上,我不知道您为什么需要postback,如果是为了某些验证,请尝试在客户端执行它们。
您能告诉我们为什么需要进行postback吗?也许我们可以更好地帮助您! :)
我猜那种方法可以行得通,但不适用于我的情况。我有一个在模态弹出窗口中打开的用户控件,这个用户控件会自动发出postback请求。因此,在该用户控件中,我没有模态弹出窗口的属性。
我猜我需要为我的用户控件创建一个事件,并且打开模态弹出窗口的页面需要在此事件中重新打开它。