单击按钮事件后更新UpdatePanel

Update an UpdatePanel after a button click event

本文关键字:更新 UpdatePanel 事件 按钮 单击      更新时间:2023-09-26

我会更好地解释我的问题,我会做很多编辑来澄清:

标记

<asp:ScriptManager runat="server" />
<div id="myModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title" >
                </h4>
            </div>
            <div class="modal-body">
            </div>
            <div class="modal-footer">
                <asp:Button runat="server" Text="Chiudi" class="btn btn-danger" data-dismiss="modal" />
                <asp:Button runat="server" ID="btn_Save" Text="Salva" class="btn btn-success" ValidationGroup="valGroup2" />
            </div>
        </div>
    </div>
</div>
<asp:Button ID="Button1" runat="server" Text="Button" data-target="#myModal" class="btn btn-primary" data-toggle="modal"/>

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false" >
    <ContentTemplate>
        <asp:GridView ID="grd_elenco" runat="server" CssClass="table table-bordered table-hover" data-toggle="modal">
        </asp:GridView>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </ContentTemplate>
    <Triggers>
    </Triggers>
</asp:UpdatePanel>

VB.NET:

Private Sub btn_Save_Click(sender As Object, e As EventArgs) Handles btn_Save.Click
    Label1.Text = "test"
    UpdateSomeDataInGrid()
    UpdatePanel1.Update()
End Sub

我只会用部分回发而不是完全回发的btn_Save更新UpdatePanel。我需要在UpdateSomeDataInGrid()之后更新面板,有人知道怎么做吗?

我试图添加UpdatePanel1.Update(),但所有页面都是回发的。

原因是btnSave不在UpdatePanel中。就目前情况来看,这意味着它总是会导致整页的回发。

若要使用UpdatePanel实现部分页面回发,请将回发控件放置在UpdatePanel内。

因此,您需要将btnSave移到UpdatePanel中:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false">
    <ContentTemplate>
        <asp:Button runat="server" ID="btn_Save" Text="Salva" class="btn btn-success" ValidationGroup="valGroup2" />
         .
         .
         .

或者,如果它更适合您的设计,则将包含btnSave的整个div移动到UpdatePanel中:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false">
    <ContentTemplate>
        <div id="myModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
         .
         .
         .

或者将btnSave放在自己的UpdatePanel中。这将避免整页回发,而您的处理程序仍然可以更新UpdatePanel1。