ASP.Net GridView不显示页码

我已经阅读了几篇文章和教程,但我无法理解这一点。 一切都基本上说,“哦,只要打开AllowPaging,你就完成了!” 当我这样做时,是的,我可以在设计视图中看到GridView下的分页控件,但是当我编译时,我无法在运行的站点中看到页码。

我注意到与所有示例不同的一点是,我从代码隐藏中做了数据工作。 因此我的GridView很简单:

 

从后面做数据工作的意思是,所有列和所有内容都是从代码构建到DataTable中,然后我将GridView的DataSource设置为DataTable。 例如,我所拥有的大致缩写版本:

 DataTable temptable = new DataTable(); DataColumn titlecol = new DataColumn(); titlecol.ColumnName = "Title"; temptable.Columns.Add(titlecol); gvlatest.DataSource = temptable; gvlatest.DataBind(); 

这只是我个人的偏好,而且说实话我实际上从未学过如何使用DataSource控件以及所有示例都在使用的地方,您在.aspx文件中使用列,数据源构建GridView所以我我的问题在于大方向……

问题是, 我做错了什么? 为什么页码不显示? 将“AllowPaging”设置为true真的是我需要做的所有事情吗?

要使Paging工作,您的数据源必须支持它。 如果没有,就像DataTable一样,那么你必须自己做。

这段代码应该有帮助。

 OnPageIndexChanging="myGridview_PageIndexChanging" protected void myGridview_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView gv = (GridView)sender; DataView dv = gv.DataSource as DataView; DataTable dataTable = dv.Table; gv.DataSource = myDataTable; gv.PageIndex = e.NewPageIndex; gv.DataBind(); } 

你必须使用gridview中的page_index更改事件来在gridview中实现分页,请参阅以下链接:

http://forums.asp.net/t/1245611.aspx

希望能帮助到你

您可以禁用特定列并添加分页

 protected void Gridview1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == System.Web.UI.WebControls.DataControlRowType.DataRow) //----------------------------------Grid view column invisible------------------------------------------------------------ if (Request.QueryString.Get("show") == "all") GridView1.Columns[0].Visible = true; else GridView1.Columns[0].Visible = false; //------------------------------------------------------------------------------------------------------------------------- } protected void Gridview1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; gvbind();// Grid View Binded } // Source Code allowpaging="true" OnPageIndexChanging="Gridview1_PageIndexChanging" pagesize="2"