關於GridView的CommandName

大家都知道GridView很強大可以直接提供新增、修改、刪除的功能,

不過有時候因為種種原因需要以程式binding動態的dataSet,就要自己處理GridView各類behavior,相關處理方式請參考http://www.dotblogs.com.tw/topcat/archive/2009/02/23/7266.aspx



------今天要分享一點關於「GridView的RowCommand事件」的心得------

GridView可能包含多個自行設計的Colume,每個Colume各有各的CommandName...並且分別執行不同的事情,透過取得e.CommandName就可以在事件中撰寫他們要執行的程式碼,如下面的範例

Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
 Select Case e.CommandName
  Case "Hello"
   '當CommandName=Hello時處理本段程式
   '(略..)
  Case "ByeBye"
   '當CommandName=ByeBye時處理本段程式
   '(略..)
Case Else
    Exit Sub
 End Select
End Sub

上面的"Hello"和"ByeBye"都是正確的,但是如果用"Delete"就會出現如下圖的錯誤,piggy還想說都已經自訂程序勒,怎麼錯誤訊息還要我去處理RowDeleteing,如果大家以後遇到情況可能要檢查一下CommandName的命名,而不是傻傻的跑去撰寫RowDeleteing事件!!


〔心得〕CommandName命名絕對不可和GridView事件之名稱相同!

沒有留言: