2009-09-18 17 views
5

J'ai fait une autre colonne dans mon GridView appelé supprimer. Lorsque vous cliquez sur supprimer, la ligne doit être supprimée ou, en d'autres termes, j'ai besoin d'obtenir le nom d'utilisateur de la ligne en cours pour le supprimer.Comment créer un bouton de suppression dans GridView?

  1. Quel événement dois-je utiliser? (RowDeleting, Rowdeleted etc ...)
  2. Comment puis-je obtenir le nom d'utilisateur de la ligne en cours?

Répondre

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

Je veux supprimer l'utilisateur de la base de données ainsi le supprimer de la Gridview. J'ai besoin d'obtenir le nom d'utilisateur –

+0

@OrBetzalel: Étant donné le 'columnIndexOfUsername' et en utilisant le ** GridViewDeleteEvent ** (voir le message de Phaedrus), vous devriez être capable d'extraire le' username' avec quelque chose comme: 'username = datagrid1.Rows [e.RowIndex] .Cells [columnIndexOfUsername] .Value.ToString(); ' – jp2code

4

Vous pouvez utiliser l'événement RowDeleting en stockant le nom d'utilisateur dans la collection de clés de données auxquelles vous pouvez accéder par programmation.

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

Puis, dans le code derrière, utilisez la clé de données pour supprimer l'enregistrement.

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

J'aime les exemples comme ceux-ci, mais je ne peux que trouver des exemples où le contrôle' DataGrid' utilisera uniquement des noms de colonnes codés en dur. Mes données sont remplies dans les coulisses en fonction des entrées de l'utilisateur, en appelant l'une des 10 procédures stockées différentes, pour afficher différents résumés - donc, différents noms de colonnes. – 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()); 
Questions connexes