1

バインドされたフィールドとデータソースをコードビハインドおよび設定した PageIndexChanging イベントに設定するグリッドビューがあります。

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

BoundFields もデータベースから取得されます。次のように追加しました。

foreach (DataRow drColumn in dtColumns.Rows)
{
   BoundField bfEmbeddedColumn = new BoundField();    
   bfEmbeddedColumn.HeaderText = drColumn["ColName"].ToString();    
   bfEmbeddedColumn.DataField = drEmbeddedTaskColumn["ColName"].ToString();    
   bfEmbeddedColumn.ItemStyle.Width = 120;    
   grvList.Columns.Add(bfEmbeddedColumn);
}

次のページにレコードが表示されますが、私の問題は、ページ インデックスが変更されるたびにバインドされたフィールドが再度追加されることです。どうすればこれを防ぐことができますか? この問題を解決できる方法はありますか?

どうもありがとうございました。

4

3 に答える 3

0

これに対する解決策を見つけました。Page_Load私の問題は、私が何度も何度も追加していたという事実によって引き起こされましboundfieldsた。

于 2012-08-03T08:18:21.463 に答える
0
protected void GridView1_PageIndexChanged(object sender, EventArgs e)
{
        try
        {
        int count = 0;
        SetData();
        GridView1.AllowPaging = false;
        GridView1.DataBind();
        ArrayList arr = (ArrayList)ViewState["SelectedRecords"];
        count = arr.Count;
        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            if (arr.Contains(GridView1.DataKeys[i].Value))
            {
                Session.Add("PatientID", GridView1.DataKeys[i].Value.ToString());
                arr.Remove(GridView1.DataKeys[i].Value);
                Response.Redirect("~/EditPaitientDetails.aspx");
            }
        }
        ViewState["SelectedRecords"] = arr;
        hfCount.Value = "0";
        GridView1.AllowPaging = true;
        BindGrid();

        //ShowMessage(count);
    }
    catch (Exception ex)
    {

    }

}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView1.PageIndex = e.NewPageIndex;
    BindGrid();
}
于 2013-02-12T12:31:33.357 に答える
0

変数 e の次のインデックスをページャーに移動する必要があります。
これを試して:

    grdSqlQuery.PageIndex = e.NewPageIndex
    grdSqlQuery.DataSource = ViewState("dts_Sqlquery")
    grdSqlQuery.DataBind()
于 2012-08-01T16:17:41.153 に答える