2009-09-18 15 views
5

Zrobiłem kolejną kolumnę w moim GridView nazwie usunąć. Po kliknięciu usunięcia wiersz powinien zostać usunięty lub innymi słowy, potrzebuję uzyskać nazwę użytkownika bieżącego wiersza, aby go usunąć.Jak utworzyć przycisk usuwania w GridView?

  1. Z którego wydarzenia powinienem skorzystać? (RowDeleting, Rowdeleted itp.)
  2. Jak uzyskać nazwę użytkownika z bieżącego wiersza?

Odpowiedz

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

Chcę usunąć użytkownika z bazy danych usuwając go w ten sposób od GridView. Potrzebuję uzyskać nazwę użytkownika –

+0

@ Orbetzalel: Biorąc pod uwagę 'columnIndexOfUsername' i używając ** GridViewDeleteEvent ** (patrz post Phaedrus), powinieneś być w stanie wyodrębnić' username' z czymś takim jak: 'username = datagrid1.Rows [e.RowIndex] .Cells [columnIndexOfUsername] .Value.ToString(); ' – jp2code

4

Można użyć zdarzenia RowDeleting, zapisując nazwę użytkownika w zbiorze kluczy danych, do którego można uzyskać dostęp programowo.

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

Następnie w kodzie za pomocą klucza danych, aby usunąć rekord.

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

Podobają mi się podobne przykłady, ale mogę tylko znaleźć przykłady, w których kontrolka' DataGrid' użyje tylko nazw kolumn o sztywnej nazwie. Moje dane są wypełniane za scenami w oparciu o dane wejściowe użytkownika, wywołując jedną z 10 różnych procedur przechowywanych, aby wyświetlać różne podsumowania - a zatem różne nazwy kolumn. – jp2code

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()); 
Powiązane problemy