1

いくつかの記事とチュートリアルを読みましたが、これを理解することはできません. 基本的に、すべてが「AllowPaging をオンにするだけで完了です!」と言っています。これを行うと、はい、デザイン ビューの GridView の下にページング コントロールが表示されますが、コンパイルすると、実行中のサイトにページ番号が表示されません。

すべての例と違うことに気付いた 1 つのことは、コード ビハインドからデータ作業を行っていることです。したがって、私の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 コントロールの使用方法を実際に学んだことはありません。などなので、私の問題はその一般的な方向にあると推測しています...

問題は、私が間違っていることは何ですか? ページ番号が表示されないのはなぜですか? 「AllowPaging」を true に設定するだけで本当に必要ですか?

4

3 に答える 3

3

ページングが機能するには、データソースがそれをサポートしている必要があります。そうでない場合は、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

グリッドビューでページングを実装するには、グリッドビューで page_index 変更イベントを使用する必要があります。このリンクを参照してください。

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 に答える