Я нашел способ обойти это, вот мое решение: вам нужно создать новый HiddenField
контроллер со стороны сервера в ASP, который будет использоваться для хранения идентификатора ModalPopupExtender
, который выЕсли вы хотите показать после постбэка, для него задано значение NULL, если всплывающее окно не отображается.
<!-- Grid Popup ID: to obtain the grid popup ID from server-side -->
<asp:HiddenField id="gridPopupID" runat="server" value="" />
Далее нам нужно установить идентификатор на HiddenField
, прежде чем использовать событие сохранения
// Confirm popup Ok button
function OnOk() {
$('#confirmPopup').hide(); // hides the current confirmation popup
$("#<%= gridPopupID.ClientID %>").val(getID()); // set the ID to the hiddenField.
ClickSaveButton(); // simulates the click of the save button
}
Теперь, в приведенном ниже коде, все, что нам нужно сделать, это проверить значение текстового поля HiddenField
, и мы можем просто сделать .Show()
в соответствующем всплывающем окне соответственно.
Protected Sub OnSaveAssociation(ByVal sender As Object, ByVal e As EventArgs) Handles butSaveAssociation.Click
' ommited code: save changes to back end
' determine which popup to show
Dim _id As String = gridPopupID.Value
Select Case _id
Case "Popup1"
gridPopup1.Show()
gridPopupID.Value = Nothing
Case "Popup2"
gridPopup2.Show()
gridPopupID.Value = Nothing
End Select
End Sub