需要建议,为什么分页无法正常工作或事件启动但弹出页面未正确刷新。 我使用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">×</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();
}
当我更改页面时,我获得了:
如何解决? 提前谢谢。
答案 0 :(得分:0)
我发现了问题。我第一次使用带有DataTable参数的函数LoadUC显示这个窗口,但是当我更改页面时,我调用LoadSearchGridView()函数而不再发送DataTable(GridView的DataSource),并且DataSource alredy为null。
现在我总是发送DataTable for DataSource,并且分页工作非常完美。
谢谢大家。 :)