【发布时间】:2016-06-17 23:33:17
【问题描述】:
我有一个GridView 控件,它使用数据表作为数据源。我在控件上启用了分页,GridView 显示了我指定为PageSize 的行数。但是没有分页导航,所以没办法换页。
问题:如何显示分页导航?
GridView 定义:
<asp:GridView runat="server" ID="gvResults" CssClass="report" DataKeyNames="LogId" AllowSorting="True" AllowPaging="True" PageSize="5" OnRowDataBound="gvResults_OnRowDataBound" OnPageIndexChanging="gvResults_OnPageIndexChanging"></asp:GridView>
C#:
//...stuff that gets data from database
DataTable dt = oDs.DataSet.Tables[0];
gvResults.DataSource = dt;
gvResults.DataBind();
注意:我已经在调试器中验证了数据表 dt 有超过 100 行
还有OnPageIndexChanging() 事件,基于对this question 的回答,虽然它在我的情况下不起作用(我不确定为什么它是必要的,因为在你尝试去之前不应该触发事件下一页,首先需要显示分页导航,对吗?):
protected void gvResults_OnPageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView gv = (GridView)sender;
DataView dv = gv.DataSource as DataView;
if (dv != null)
{
DataTable dt = dv.Table;
gv.DataSource = dt;
}
gv.PageIndex = e.NewPageIndex;
gv.DataBind();
}
我希望能通过某种方式对结果进行分页。
我还尝试将PagerSettings 添加到我的GridView,如下所示:
<asp:GridView runat="server" ID="gvResults" CssClass="report" DataKeyNames="LogId" AllowSorting="True" AllowPaging="True" PageSize="5" OnRowDataBound="gvResults_OnRowDataBound" OnPageIndexChanging="gvResults_OnPageIndexChanging">
<PagerSettings Mode="NextPreviousFirstLast" FirstPageText="First" LastPageText="Last" NextPageText="Next" PreviousPageText="Previous" Position="Bottom"></PagerSettings>
</asp:GridView>
这是最后一行呈现的 HTML 的样子。我在运行时修改了 css 以扩展行,因此很明显该行是空的。 css没有隐藏分页控件。
【问题讨论】:
-
检查 html 渲染的代码,可能是某些 css 隐藏了它
-
@Aristos - 我用呈现的 HTML 的屏幕截图更新了我的问题。该行中没有任何内容应具有分页控件。