引导模式中的UpdatePanel不会更新

时间:2017-08-15 22:48:46

标签: asp.net twitter-bootstrap updatepanel

我使用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

1 个答案:

答案 0 :(得分:1)

您应为ID指定UpdatePanel,并设置UpdateMode属性以指明更新面板应如何更新/刷新其内容。

<asp:UpdatePanel runat="server" ID="UpdatePanel123" UpdateMode="Conditional">

在您设置Label文字的代码中,您应该调用.Update()的{​​{1}}事件:

UpdatePanel

MSDN参考https://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.updatemode(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1