Gridview中新增按鈕響應事件

iDotNetSpace發表於2009-04-02

Title生成按鈕事件的介面      Gridview控制元件裡自帶的行刪除,更

新功能僅有介面,沒有響應事件的程式碼。要想實現對GridView中行

的操作,可以通過新增自定義的按鈕事件來實現。下面以新增自定

義的刪除按鈕來說明。

      開啟GridView的Smart penl,點選編輯列,雙擊ButtonField

,以新增按鈕欄位。BttonType選Butten,設定CommandName,如設

為“Del”,那麼這個“Del”就用來唯一標識這個按鈕的響應命令

。其他屬性,如TEXT,Headertext,可根據需要自己設定。這樣添

加按鈕欄位就完成了,接下來配置按鈕響應事件的介面。

      開啟GridView的屬性頁,點選事件。雙擊RowCommand右邊的

空白,就會轉到.CS程式碼編輯頁面,並自動生成按鈕事件的介面。(

如下圖)

  protected void GridView1_RowCommand(object sender,

GridViewCommandEventArgs e)
    {
    }

Title行刪除按鈕的響應事件

 

Code
  protected void GridView1_RowCommand(object sender,

GridViewCommandEventArgs e)
    {
        if ("del" == e.CommandName)
        {
            con.Open();
            int idx = Convert.ToInt16(e.CommandArgument

.ToString());
            string hid= GridView1.DataKeys[idx

].Value.ToString();
            string sqldel = "delete from T_CourseInfo where

HomeworkID='"+hid+"'";
            SqlCommand cmd = new SqlCommand(sqldel,con );
            cmd.ExecuteNonQuery();
            con.Close();
            GridView1.DataBind();

        }
     說明:函式的引數e,傳回來兩個重要資訊,一個是

e.CommandName,另一個是e.CommandArgument。前者的值是按鈕的標

志,以方便在有兩個以上按鈕的時候選定特定的按鈕。後者的值是

按鈕所在的行號。如,0,1,...
     然而,對資料庫的操作都是以資料表的主鍵來實現的,但e只

傳回來一個行號,這怎麼辦呢?
     其實GridView是可以把行號和主鍵關聯起來的。在GridView的

屬性頁,把DataKeyNames的值設為該資料表的主鍵欄位就可以了。

如下:
      int  idx = Convert.ToInt16(e.CommandArgument

.ToString());
     string  hid= GridView1.DataKeys[idx ].Value.ToString

();
     idx的值便是按鈕所在的行號,Hid的值便是第idx行的主鍵。
     有了主鍵,資料庫的操作就非常簡單了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-580660/,如需轉載,請註明出處,否則將追究法律責任。

相關文章