1. 程式人生 > >使用GridView時遇到的一些小問題及解決方法

使用GridView時遇到的一些小問題及解決方法

最近一直在用ASP.NET做網站,做後臺的時候想偷懶,所以就使用現成的控制元件了,資料綁定當然要選用最強大的GridView了。原本以為這個控制元件很簡單,只需要設定一下屬性,寫很少幾行程式碼就可以搞定。GridView使用起來,簡單倒是挺簡單的,不過還是遇到了一些問題。

首先說明我的表的主鍵是 RecommendID,給GridView 繫結資料的方法為Bind()。下面我來說一下我遇到的問題及解決辦法。

1. 刪除列

我沒有使用GridView自帶的刪除功能----CommandField列做刪除按鈕,而是通過在一個模板列(TemplateField)中加入一個LinkButton 來實現的,設定該按鈕的 

CommandName="Delete"  CommandArgument='<%# Eval("RecommendID") %>' ,設定GridViewOnRowCommand ="GridView1_RowCommand",在後臺寫程式碼如下:

但是在執行的時候報錯:激發了未處理的事件“GridView1_RowDeleting”。我以為不用GridView自帶的刪除功能,就可以不寫GridView1_RowDeleting 事件,但事實上是隻要GridView有列被刪除掉就會激發GridView1_RowDeleting 事件,因此設定GridView  OnRowDeleting = "GridView1_RowDeleting" ,然後在後臺寫程式碼如下:

總結

:自己寫按鈕刪除GridView 中的一列時:事件激發順序為:GridView_RowCommand —— —> GridView_RowDeleting。當然,刪除列的程式碼你可以放在這兩個事件中的任意一個,不過會有一點小區別。上面的方式是將刪除程式碼放在GridView_RowCommand 事件中,我們來看另外一種:

2. GridView分頁

我使用了GridView 自帶的分頁功能,分頁事件為:GridView1_PageIndexChanging,後臺寫程式碼如下:

但是在執行的時候仍然會首先激發GridView_RowCommand事件,CommandName == "Page",然後激發GridView1_PageIndexChanging事件,做如下修改: