1

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

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

<asp:GridView ID="gvlatest" runat="server" Width="99%" AllowSorting="True" 
              onrowdatabound="gvlatest_RowDataBound" onsorting="gvlatest_Sorting" 
              AllowPaging="True" PageSize="2" />

我所说的从后面进行数据工作的意思是,所有的列和所有内容都是从代码构造到 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 真的是我需要做的吗?

4

3 回答 3

3

要使 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();
}
于 2012-06-11T05:40:40.777 回答
0

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

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

希望能帮助到你

于 2012-06-11T05:25:53.393 回答
0

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

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"
于 2016-07-14T15:00:53.690 回答