0

GridView には非常に多くの ServerName のリストがあるため、ページングを追加することにしました。データは1ページ目にリスト結果を表示しますが、2ページ目には表示され、残りは何も表示されません。私はすでにOnPageIndexChanging="GridViewServer_PageIndexChanging"GridViewServer プロパティを持っています。助けてください!ここにC#コードビハインドがあります、

protected void GridViewServer_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridViewServer.PageIndex = e.NewPageIndex;
        GridViewServer.DataBind();
    }

GridView バインディング関数コード、

public void BindGridView()
    {
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Database_Shared_NotebookConnectionString"].ConnectionString);

        conn.Open();

        string sqlquery = ("SELECT * FROM tblServer");

        SqlCommand command = new SqlCommand(sqlquery, conn);

        SqlDataAdapter adp = new SqlDataAdapter(command);

        DataSet ds = new DataSet();

        adp.Fill(ds);

        GridViewServer.DataSource = ds.Tables[0];

        GridViewServer.DataBind();
    }
4

3 に答える 3

2

GridView のデータソースを適切に設定する必要があります。データソースが適切に設定されていない場合、DataBind を呼び出すことはできません。基本的には、GridView を null にバインドすることです (ページ 2 はありません)。このプロセスを担当するプライベートメソッドを用意し、バインドする必要があるときはいつでもそれを呼び出すことをお勧めします。

private void BindGridViewServer()
{
    GridViewServer.DataSource = GetYourData();  // This should get the data
    GridViewServer.DataBind();
}

イベント内からこのメソッドを呼び出します。

protected void GridViewServer_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridViewServer.PageIndex = e.NewPageIndex;
    BindGridViewServer();
}

これは、GridView をパラメーターとして渡すことで拡張性を高めることができますが、メソッドが適切なデータを取得することを確認するには、他のパラメーターも必要です。

于 2012-11-30T20:31:30.967 に答える
0

カスタム GridView ページングに関する非常に優れたチュートリアル (サンプル コード付き) を次に示します。これにより、ページング コントロールは、多くの検索エンジンやフォーラムなどで見られるおなじみのもののように見えます。

http://geekswithblogs.net/aghausman/archive/2009/05/18/custom-paging-in-grid-view.aspx

于 2012-11-30T20:35:07.743 に答える
0

ページのインデックスが変更されるたびに、データソースを GridViewServer に渡す必要があります。したがって、コードは次のようになります

protected void GridViewServer_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridViewServer.PageIndex = e.NewPageIndex;
    GridViewServer.Datasource = MethodReturningDataTable();
    GridViewServer.DataBind();
}
于 2012-11-30T20:49:40.237 に答える