bootstrap 模式中的 UpdatePanel 不更新
UpdatePanel inside a bootstrap modal doesn't update
我更改了位于 Bootstrap 模态框内的 UpdatePanel 中的标签文本。当模态弹出时,文本尚未设置(通过调试我可以看到它正确设置了带有错误消息的标签文本)。
此模式驻留在 UserControl 中并从中调用。
我错过了什么?为什么不触发 UpdatePanel?
<%--ERROR MODAL--%>
<asp:Panel runat="server" class="modal fade" ID="modalErrorMessage" role="dialog" aria-labelledby="modalErrorMessage" aria-hidden="true">
<div class="modal-dialog">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="modal-content panel-danger">
<div class="modal-header panel-heading"><span class="glyphicon glyphicon-warning-sign" aria-hidden="true"></span> Error!</div>
<div class="modal-body">
<asp:Label runat="server" ID="lblmodalErrorMessage" Text=""></asp:Label>
<br />
<div class="modal-footer margin-top-sm">
<asp:Panel runat="server" ID="Panel2">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</asp:Panel>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
Private Sub RaiseErrorMessageModal(errorMessage As String)
lblmodalErrorMessage.Text = errorMessage
RegisterModalPopup(modalErrorMessage.ClientID)
End Sub
Protected Sub RegisterModalPopup(modalId As String)
Dim script = String.Format("$('#{0}').modal();", modalId)
ScriptManager.RegisterStartupScript(Page, Page.GetType(), modalId,
script, True)
End Sub
您应该为您的 UpdatePanel
指定 ID
并设置 UpdateMode
属性 以指示更新面板应如何 update/refresh 其内容。
<asp:UpdatePanel runat="server" ID="UpdatePanel123" UpdateMode="Conditional">
在您设置 Label
文本的代码中,您应该调用 UpdatePanel
的 .Update()
事件:
//Depending on where this code is, you may need to find your UpdatePanel control.
Private Sub RaiseErrorMessageModal(errorMessage As String)
lblmodalErrorMessage.Text = errorMessage
UpdatePanel123.Update()
RegisterModalPopup(modalErrorMessage.ClientID)
End Sub
我更改了位于 Bootstrap 模态框内的 UpdatePanel 中的标签文本。当模态弹出时,文本尚未设置(通过调试我可以看到它正确设置了带有错误消息的标签文本)。
此模式驻留在 UserControl 中并从中调用。
我错过了什么?为什么不触发 UpdatePanel?
<%--ERROR MODAL--%>
<asp:Panel runat="server" class="modal fade" ID="modalErrorMessage" role="dialog" aria-labelledby="modalErrorMessage" aria-hidden="true">
<div class="modal-dialog">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="modal-content panel-danger">
<div class="modal-header panel-heading"><span class="glyphicon glyphicon-warning-sign" aria-hidden="true"></span> Error!</div>
<div class="modal-body">
<asp:Label runat="server" ID="lblmodalErrorMessage" Text=""></asp:Label>
<br />
<div class="modal-footer margin-top-sm">
<asp:Panel runat="server" ID="Panel2">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</asp:Panel>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
Private Sub RaiseErrorMessageModal(errorMessage As String)
lblmodalErrorMessage.Text = errorMessage
RegisterModalPopup(modalErrorMessage.ClientID)
End Sub
Protected Sub RegisterModalPopup(modalId As String)
Dim script = String.Format("$('#{0}').modal();", modalId)
ScriptManager.RegisterStartupScript(Page, Page.GetType(), modalId,
script, True)
End Sub
您应该为您的 UpdatePanel
指定 ID
并设置 UpdateMode
属性 以指示更新面板应如何 update/refresh 其内容。
<asp:UpdatePanel runat="server" ID="UpdatePanel123" UpdateMode="Conditional">
在您设置 Label
文本的代码中,您应该调用 UpdatePanel
的 .Update()
事件:
//Depending on where this code is, you may need to find your UpdatePanel control.
Private Sub RaiseErrorMessageModal(errorMessage As String)
lblmodalErrorMessage.Text = errorMessage
UpdatePanel123.Update()
RegisterModalPopup(modalErrorMessage.ClientID)
End Sub