Supprimer un row d'un gridview

Résolu
hamoudaman Messages postés 8 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 30 avril 2009 - 21 mars 2009 à 23:41
hamoudaman Messages postés 8 Date d'inscription mercredi 25 février 2009 Statut Membre 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.

5 réponses

ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
30 mars 2009 à 00:35
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
3
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
22 mars 2009 à 00:30
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
0
coccolata Messages postés 86 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 26 mai 2010
23 mars 2009 à 12:10
à mon c'est évident le message d'erreur..parce que la suppression tu dois la gerer dans un evenement RowDeleting
0
hamoudaman Messages postés 8 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 30 avril 2009
29 mars 2009 à 21:17
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hamoudaman Messages postés 8 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 30 avril 2009
2 avril 2009 à 21:38
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.
0
Rejoignez-nous