1

現在、グリッド データを別のページに表示する方法に行き詰まっています。

基本的に、ページングが有効になっている GridView 名「gdvRiders」があります。問題は、ページ 2 をクリックすると、データのない空白のページが表示されることです。誰かが私を助けることができますか?私はc#を学び始めています

これが私のコードです:

protected void Page_Load(object sender, EventArgs e)
    {
        DataBase db = new DataBase(true);
        string strSQL;
        DataTable dt;

        if (!IsPostBack)
        {
            strSQL = "SELECT r.surname, r.firstname, cn.country, r.age, f.flagurl " +
                     "FROM (Riders r INNER JOIN par_CountryNation cn ON r.countryid = cn.countryid) INNER JOIN par_Flags f ON cn.flagid = f.flagid ";

            dt = db.getDataTableAc(strSQL, "list_Riders");

            gdvRiders.DataSource = dt;
            gdvRiders.DataBind();

        }

    }

    protected void gdvRiders_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
            gdvRiders.PageIndex = e.NewPageIndex;
            gdvRiders.DataBind();

    }
}
4

1 に答える 1

1

グリッドのデータソースにデータを割り当てる必要があります。You should put the code to bind the gridview in separate function and call it from page_load and PageIndexChanging.

protected void gdvRiders_PageIndexChanging(object sender, GridViewPageEventArgs e)
{             
       strSQL = "SELECT r.surname, r.firstname, cn.country, r.age, f.flagurl " +
                 "FROM (Riders r INNER JOIN par_CountryNation cn ON r.countryid = cn.countryid) INNER JOIN par_Flags f ON cn.flagid = f.flagid ";
        dt = db.getDataTableAc(strSQL, "list_Riders");
        gdvRiders.PageIndex = e.NewPageIndex;
        gdvRiders.DataSource = dt; 
        gdvRiders.DataBind();

}
于 2012-11-17T15:10:34.843 に答える