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

Messages postés
8
Date d'inscription
mercredi 25 février 2009
Dernière intervention
30 avril 2009
- - Dernière réponse : hamoudaman
Messages postés
8
Date d'inscription
mercredi 25 février 2009
Dernière intervention
30 avril 2009
- 2 avril 2009 à 21:38
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.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
417
Date d'inscription
vendredi 13 juin 2008
Dernière intervention
21 juillet 2010
3
Merci
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

Merci ggtry 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de ggtry
Messages postés
417
Date d'inscription
vendredi 13 juin 2008
Dernière intervention
21 juillet 2010
0
Merci
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
Commenter la réponse de ggtry
Messages postés
86
Date d'inscription
samedi 31 janvier 2009
Dernière intervention
26 mai 2010
0
Merci
à mon c'est évident le message d'erreur..parce que la suppression tu dois la gerer dans un evenement RowDeleting
Commenter la réponse de coccolata
Messages postés
8
Date d'inscription
mercredi 25 février 2009
Dernière intervention
30 avril 2009
0
Merci
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
Commenter la réponse de hamoudaman
Messages postés
8
Date d'inscription
mercredi 25 février 2009
Dernière intervention
30 avril 2009
0
Merci
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.
Commenter la réponse de hamoudaman

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.