GridView可以自己產生CommandFiled功能按鈕(只要我們有勾選起來。ex:選取,刪除,編輯...)
而這些CommandField是由系統幫我們產生的,所以它本身也帶著CommandName,讓我們來抓取當user點選它之後可以對他做處理。
ex:
編輯按鈕:CommandName = "Edit";
選取按鈕:CommandName = "Select";
注意: 選取按鈕只有(GridView跟ListViwe才有)
新增按鈕:CommandName ="Add" or "New" or "Insert"
注意:新增按鈕只有FromViwe,ListView,DetailsView才有。
(詳細參考P10-38)
重點:這些CommandName是系統的保留字,所以在自己定義CommandName時候不要跟這些字一樣。
範例:
當user按下名為"編輯"按鈕時,系統會知道這個按鈕的CommandName是"Edit",接著觸發RowEditing事件進入編輯模式。
ex1:
//按下編輯按鈕,進入編輯模式觸發事件(GridView1_RowEditing)
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
//每個事件的e都代表不同參數,這個e代表目前user按下的是哪一列,就把這一列進入編輯模式
GridView1.EditIndex = e.NewEditIndex;
}
ex2:(不同寫法但是也可以進入編輯)
上一個範例是按下"編輯"按鈕後進入編輯模式,但這次我們設計按下"選取"按鈕後也可以進入編輯模式
//按下選取按鈕觸發事件:SelectedIndexChanged
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
//(GridView1.SelectedIndex)把user選取到的那一行index,進入編輯模式(GridView1.EditIndex)
GridView1.EditIndex = GridView1.SelectedIndex;
}
注意:
那麼也可以把GridView.EditIndex = e.NewEditIndex,這一行寫在GridView的SelectedIndexChanged事件中囉?
不行!
注意這裡:e.NewEditIndex這裡的e代表GridView1_RowEditing事件中的e(ex.1),
不同的事件不可混用,所以才說不同的e代表不同事件(雖然看起來一樣)。
關於每個CommmandName對應的事件可以參考P10-41