天天看點

關于Dropdownlist綁定GridView分頁出錯問題

問題描述:

我通過Dropdownlist來同步重新整理GridView中資料,預設綁定的GridView有5頁(PageSize=12)資料。當我選擇Dropdownlist的第一項時,查詢到兩頁資料,并綁定到GridView。GridView中顯示的也是兩頁。

當我點選第二頁時,問題出現了。

資料由2頁變成了5頁。

我的整個頁面都用的UpdatePanel包裹着的。

問題探讨:

大部分原因,是初學者在page_load中去綁定了dropdownlist。

asp.net會自動保持狀态,你不能在page_load中随便綁定Dropdownlist。充其量隻需要寫在 if(IsPostback) 判斷中,而不是每一回發都綁定。

其它控件也是一樣,注意不要在page_load中随便綁定資料。通常頂多隻在 !IsPostback 時綁定一次。

還有可能是分頁的時候你沒有把Dropdownlist的選項值傳遞到分頁中

解決方案:

針對第一種在page_load事件中綁定Dropdownlist而出現分頁出錯。那就是盡量不在Page_load事件中直接綁定Dropdownlist,通過if(ispostback)綁定。。。

針對未傳值問題,就是把Dropdownlist 的selectedindexchanged事件中的代碼拿出來寫成一個單獨的方法,直接在selectedindexchanged事件中調用該方法。

同時在PageIndexChanging事件中調用該方法,就會避免分頁出錯問題。

貼一下代碼。

protected void DropDownListDisplay_SelectedIndexChanged(object sender, EventArgs e)

{

BindGridView();

}

private void BindGridView()

{

}

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)

{

this.GridView1.PageIndex = e.NewPageIndex;

BindGridView();

this.GridView1.DataBind();

}