如何在模式弹出窗口ASP.NET Bootstrap 4.0中使用Gridview Paging

时间:2018-03-15 14:27:25

标签: c# asp.net bootstrap-4

需要建议,为什么分页无法正常工作或事件启动但弹出页面未正确刷新。 我使用Bootstrap模态内容和GridView创建了一个用户控件。

ASP页面(控制):

<asp:Panel runat="server" ID="pModal">
<div class="modal fade" id="searchDiv" role="dialog" aria-labelledby="Adresse wählen:" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered" role="document">
        <asp:UpdatePanel ID="upModal" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional">
            <ContentTemplate>
                <div class="modal-content">
                    <div class="modal-header">
                        <h5 class="modal-title" id="exampleModalLongTitle">Modal title</h5>
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                            <span aria-hidden="true">&times;</span>
                        </button>
                    </div>
                    <div class="modal-body">
                        <asp:GridView ID="gvSearch" runat="server" CssClass="table table-hover table-responsive-sm table-sm table-bordered" AllowPaging="True" AllowSorting="true"
                            PageSize="5" AutoGenerateColumns="true" ShowHeaderWhenEmpty="true"
                            OnPageIndexChanging="gvSearch_PageIndexChanging" PagerSettings-PageButtonCount="5">
                            <Columns>
                                <asp:TemplateField>
                                    <ItemTemplate>
                                        <asp:Button ID="btnGvOK" runat="server" Text="OK" CssClass="btn btn-dark" OnClick="btnGvOK_Click" />
                                    </ItemTemplate>
                                </asp:TemplateField>
                            </Columns>
                            <PagerSettings PageButtonCount="5" />
                            <PagerStyle CssClass="pagination" HorizontalAlign="Justify" />
                        </asp:GridView>
                    </div>
                </div>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
</div>

使用此脚本,我将显示弹出窗口:

public void LoadUC(DataTable dt)
{
    dtSource = dt;
    if (dtSource.Rows.Count > 0)
    {
        LoadSearchGridView();
        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Script",
            "<script> $('#searchDiv').modal('show'); </script>", false);
        upModal.Update();
    }
}

所以我改变了页面:

protected void gvSearch_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    gvSearch.PageIndex = e.NewPageIndex;
    LoadSearchGridView();
    upModal.Update();
}

当我更改页面时,我获得了:

enter image description here

如何解决? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我发现了问题。我第一次使用带有DataTable参数的函数LoadUC显示这个窗口,但是当我更改页面时,我调用LoadSearchGridView()函数而不再发送DataTable(GridView的DataSource),并且DataSource alredy为null。

现在我总是发送DataTable for DataSource,并且分页工作非常完美。

谢谢大家。 :)