close

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

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 melomelo1988 的頭像
    melomelo1988

    melo 唐

    melomelo1988 發表在 痞客邦 留言(0) 人氣()