Supprimer un row d'un gridview [Résolu]

Signaler
Messages postés
8
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
30 avril 2009
-
hamoudaman
Messages postés
8
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
30 avril 2009
-
Bonjour ,
J'ai un GridView relié a un SqlDataSource, ce gridview je le remplie avec des elements dont jai réussi a faire un ajout, modification mais pas suppression.
Mon probleme est comment supprimer un row dans un gridview ou comment faire pour supprimer une ligne.
j'ai utiliser ce code :
//-------------------------------------------------------------------------------------------------
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        GridView1.DeleteRow(Convert.ToInt16(e.CommandArgument));
        GridView1.DataBind();
    }
//-------------------------------------------------------------------------------------------------

Mais je rçoit toujours ce message d'erreur :
Le GridView 'GridView1' a déclenché un événement RowDeleting qui n'était pas géré.

est ce que quelqu'un a la solution a mon probleme, MERCI.

5 réponses

Messages postés
417
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
21 juillet 2010
1
Bonsoir,

Le commandargument n'est pas spécialement fait pour cela, mais pourquoi pas l'utiliser ainsi...
Dans ton premier message, tu utilises deleterow, qui est surtout utile lorsque tu utilises un contrôle extérieur à ton gridview. Si ton imagebutton est dans ta gridview, ce n'est pas nécessaire.
Mais quoi qu'il en soit, tu dois définir un deletecommand. Par exemple, pour un sqldatasource :

ton select command éventuel"
            DeleteCommand="DELETE FROM Ta_Table WHERE ton_id=@ton_id">
            <DeleteParameters>
           
            </DeleteParameters>
 

Je suppose que l'imagebutton qui est dans ta gridview est de la forme :

                    ' runat="server" />
 

Donc, tu peux faire en c#, pour définir le deleteparameters :

protected void toto(object sender, ImageClickEventArgs e)
    {     
        SqlDataSource1.DeleteParameters[0].DefaultValue = ((ImageButton)(sender)).CommandArgument;
        SqlDataSource1.Delete();
    }

Pour la conversion, je n'en vois pas trop la nécessité...

GGtry
Messages postés
417
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
21 juillet 2010
1
Bonsoir,


Pour supprimer une row de ton gridview, il faut que tu supprimes la ligne de ta source de données sql : le message d'erreur signifie simplement que tu n'as pas précisé d'instruction sql Delete pour ce faire.

GGtry
Messages postés
86
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
26 mai 2010

à mon c'est évident le message d'erreur..parce que la suppression tu dois la gerer dans un evenement RowDeleting
Messages postés
8
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
30 avril 2009

Merci pour Votre réponse
 voila pour remplire mon gridview je fait :

DataTable dTable = new DataTable();
    DataRow dRow = null;
dTable.Columns.Add("Ligne");    dTable.Columns.Add("Id");     dTable.Columns.Add("Nom");     dTable.Columns.Add("Prix");
for (j = 0; j < List_Rec.Count; j++)
{
                    Tab_Rec = List_Rec[i];
                    dRow = dTable.NewRow();
                    dRow["Ligne"] = i;
                    dRow["Id"] = Tab_Rec[0];
                    dRow["Nom"] = Tab_Rec[1];
                    dRow["Prix"] = Tab_Rec[2];
}
GridEquipement_Securite.DataSource = dTable;
        GridEquipement_Securite.DataBind();

ensuite jai réussi a modifier dans le grid mais pas supprimer
y a quelque chose que vous devez s'avoir c'est que dans le grid jai une colonne qui contien un button que sont databinding je lai mit Eval("Ligne") dans CommandArgument et pour quoi fair?
tous simplement dans l'evenement _Click de cet Objet je fait ce transtipage
int i = Convert.ToInt16(((ImageButton)(sender)).CommandArgument);
car CommandArgument contient la ligne dans le grid
Messages postés
8
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
30 avril 2009

Merci infiniment jai bien compris le sens de deletecommand et comment l'utiliser.

Mais je tien a te dire que maintenant je ne peut pas l'utiliser parce que je travail sur un projet dont j'ai besoin d'un site web et d'un service web et dans mon site je n'ai pas le doit de citer le nom de mes table y compris les colonne personne sur le site ne peut s'avoir comment ma base de donnée  et structurée, tou accé a ma base se fait dans mon service, c'est a dire dans le site je reçoit que des information et je retourne d'autre au service, donc la suppression des données se faisait dans le site au niveau du gridview aprés le résultat je le retourne a mon service et c'est lui qui fait la suppression au niveau de la base de donnée, donc jai compris qu'on peut pas supprimer d'un gridview juste comme ça.
Merci.