更新 jquery 对话框中的网格视图 (ASP.net c#)

本文关键字:ASP net 视图 网格 jquery 对话框 更新 | 更新日期: 2023-09-27 18:31:40

有没有办法更新jquery对话框中的网格视图?我已经让按钮正常工作,但是网格视图没有更新。 下面是我的代码。

.JS:

    <script type="text/javascript" language="javascript">
$(document).ready(function () {
    function BindEvents() {

        //alerts dialog
        $( "#pnlAlerts" ).dialog({            
            autoOpen: false,
            modal: true,
            width: 700,             
            open:function(){{
                $(this).parent().appendTo($("form:first"));
            }}
        });
        $('.openAlert').click(function () {        
            $( '#pnlAlerts' ).dialog( 'open' );
        });
          }
    BindEvents();
}); 

前端:

            <asp:Panel runat="server" ID="pnlAlerts" Visible="true" class="alert-dialog">
            <asp:UpdatePanel ID="updPanelAlert" runat="server" >
                <ContentTemplate>
                    <asp:Label id="lblDatabaseStatus" runat="server" CssClass="left found" />
                    <asp:Panel id="pnlAlert" Runat="Server" Visible="true">
                        <div id="table-search">
                            <asp:Button ID="btnDelete" runat="server" Text="Delete" CssClass="btn normal-btn left" onclick="btnDelete_Click"  />
                            &nbsp;&nbsp;<asp:Button ID="btnMark" runat="server" Text="Mark as Read" CssClass="btn normal-btn left" onclick="btnMark_Click"  />
                            <!-- Loader -->
                            <asp:UpdateProgress ID="updProgress" runat="server" AssociatedUpdatePanelID="updPanelAlert" class="loader" DisplayAfter="1">
                                <ProgressTemplate>
                                        <asp:Image ID="imgPleaseWait" runat="server" ImageUrl="~/images/pleasewait.gif" />
                                </ProgressTemplate>
                            </asp:UpdateProgress>
                            <div class="nip">
                            </div>
                            <br class="clear"/>
                        </div>
                        <asp:SqlDataSource ID="sqldsAlert" runat="server" 
                            ConnectionString="<%$ ConnectionStrings:ABCDB %>" 
                            SelectCommand="sp_AlertsGet" SelectCommandType="StoredProcedure">
                            <SelectParameters>
                                <asp:ControlParameter  ControlID="lblUserID" Name="UserID" Type="String" Direction="Input" />
                                <asp:Parameter DefaultValue="null" Direction="InputOutput" Name="op_status" 
                                    Type="String" />
                            </SelectParameters>
                        </asp:SqlDataSource>
                        <asp:Panel id="pnlAlertGrid" runat="server" ScrollBars="Auto" EnableTheming="false">
                            <!-- Table data -->
                            <asp:GridView id="gvAlertGrid" runat="server"  CssClass="grid" 
                                GridLines="Vertical" DataKeyNames="AlertID" AutoGenerateColumns="False" 
                                width="100%" PageSize="50" Border="0" 
                                AllowPaging="True" AllowSorting="True" PagerSettings-Position="Bottom" 
                                DataSourceID="sqldsAlert">
                                <Columns>
                                    <asp:TemplateField HeaderText="AlertID" Visible="false">
                                        <ItemTemplate>
                                            <asp:Label ID="lblAlertID" Text='<%# Eval("AlertID")%>'  runat="server" />
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="&nbsp">
                                        <itemTemplate>
                                            <asp:CheckBox ID="cbDeleteMark" width="25px" Checked="false" runat="server" Enabled="True"/>
                                        </itemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Subject" SortExpression="AlertSubject">
                                        <itemTemplate>
                                            <asp:Label ID="lblAlertSubject" Text='<%# Eval("AlertSubject")%>' ForeColor='<%# SetColor(Eval("ReadStatus"))%>' runat="server" />
                                        </itemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Type" SortExpression="Priority">
                                        <itemTemplate>
                                            <asp:Label ID="lblPriority" Text='<%# Eval("Priority")%>' ForeColor='<%# SetPriorityColor(Eval("ReadStatus"), Eval("Priority"))%>' runat="server" />
                                        </itemTemplate>
                                    </asp:TemplateField>
                                    <asp:templatefield headertext="Received" SortExpression="Date">
                                        <itemtemplate>
                                          <asp:label id="lblDate" ForeColor='<%# SetColor(Eval("ReadStatus"))%>'
                                            text= '<%# String.Format("{0:dd/MM/yy}",Eval("[Date]")) %>'
                                            runat="server"/> 
                                        </itemtemplate>
                                        <ItemStyle HorizontalAlign="Center" />                          
                                    </asp:templatefield>
                                </columns>
                            </asp:GridView>
                        </asp:Panel>
                    </asp:Panel>
                </ContentTemplate>
            </asp:UpdatePanel>
            <asp:Label runat="server" ID="lblUserID" Visible="false"></asp:Label>
        </asp:Panel>            

更新 jquery 对话框中的网格视图 (ASP.net c#)

为了使 GridView 更新,您需要让页面触发回发或执行服务器端调用 GridView 上的 DataBind 。

您可以尝试的另一个选项是在更新面板中添加一个隐藏按钮,然后调用:

__doPostBack('<%= Button.ClientID %>','');

这应刷新更新面板,从而刷新 GridView。

您刚刚打开和关闭面板"pnlAlerts"作为模式对话框的jquery。

如果要在 GridView 中编辑数据,则需要编辑模板。

希望有帮助。