2009-09-18 68 views
5

我在我的GridView中創建了另一個名爲delete的列。當單擊刪除時,該行應該被刪除或換句話說,我需要獲取當前行的用戶名來刪除它。如何在GridView中創建刪除按鈕?

  1. 我應該使用哪個事件? (RowDeleting,Rowdeleted等...)
  2. 如何從當前行獲取用戶名?

回答

0
tablename.Rows.RemoveAt(datagrid1.currentcell.rowindex); 
+0

我想從這樣的數據庫中刪除他在GridView刪除用戶。我需要獲得用戶名 – 2009-09-18 23:19:05

+0

@OrBetzalel:給定'columnIndexOfUsername'並使用** GridViewDeleteEvent **(參見Phaedrus的文章),你應該能夠用'username = datagrid1.Rows [e.RowIndex] .Cells [columnIndexOfUsername] .Value.ToString();' – jp2code 2012-02-09 15:35:53

4

您可以使用RowDeleting事件,通過將用戶名存儲在數據密鑰集合中,您可以通過編程方式訪問它。

<asp:GridView DataKeyNames="UserName" ID="GridView1" 
    runat="server" OnRowDeleting="GridView1_RowDeleting"> 

然後,在後面的代碼中使用數據鍵刪除記錄。

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) 
{ 
    string userName = (string) GridView1.DataKeys[e.RowIndex].Value; 
    DeleteUser(userName); 
} 
+0

我喜歡這些例子,但我似乎只能找到'DataGrid'控件只使用硬編碼列名的例子。我的數據根據​​用戶輸入在後臺填充,調用10個不同的存儲過程之一,顯示不同的摘要 - 因此,不同的列名稱。 – jp2code 2012-02-09 15:31:33

0

1: -

protected void grdLst_RowDeleting(object sender, GridViewDeleteEventArgs e) 

{ 

    int i = Convert.ToInt32(grdLst.DataKeys[e.RowIndex].Value); 
    ob.DeleteCoverage(i); 
    Response.Redirect("fullcoverage.aspx"); 
} 

2: -

GridViewRow row = (GridViewRow)grdlist.Rows[e.RowIndex]; 
    string name = row.Cells[1].Text; 
    Response.Write(name.Trim()); 
相關問題