lg022
Messages postés21Date d'inscriptionjeudi 24 avril 2008StatutMembreDernière intervention28 juillet 2008
-
22 juil. 2008 à 13:51
cs_scoufild
Messages postés61Date d'inscriptionmercredi 12 décembre 2007StatutMembreDernière intervention13 avril 2011
-
5 févr. 2009 à 10:26
bonjour à tous
j'explique mon petit soucis
j'ai crée un gridview qui m'affiche différents champs
maintenant mon probleme est que je n'arrive pas à selectionner une ligne et la supprimer définitivement du gridview!!
en faite ce gridview va permettre de visualiser des demandes et j'aimerai que la personne qui s'occupe de ses demandes lorsqu'elle sélectionne une ligne celle ci disparait mais lors d'une actualisation avec F5 cette ligne ne réapparaisse pas
je me demande si j'ai utilisé le bon outil aussi ou aussi est ce que cela est possible?
ggtry
Messages postés417Date d'inscriptionvendredi 13 juin 2008StatutMembreDernière intervention21 juillet 20101 23 juil. 2008 à 16:48
Pour le problème lors de ta copie, il faudrait que tu dises comment tu fais.
Mais peut-être aurais-tu pu faire autrement, en évitant la copie.
Par exemple, tu pourrais ajouter à ta table "besoins" un nouveau champ, nommé par exemple 'Etat', que tu renseignerais avec un code de ton choix selon que la ligne est "traitée" ou non.
Je veux dire : ton souci vient ici de ce que tu veux tout à la fois supprimer une ligne et la conserver ailleurs. Mais rien ne t'empêche de la conserver dans la même table : si par exemple tu as la possibilité 'T' (= traité) ou 'N' (= non traité) dans un champ "Etat", il te suffit de préciser dans le where du select que tu ne veux afficher que ce qui n'a pas été traité, soit N.
Ensuite, tu pourrais créer un bouton dans un template field qui "supprimerait" fictivement ta ligne : en fait, tu changerais simplement l'état (en le passant de N à T par un update), de sorte que ta ligne ne serait plus affichée. Elle serait conservée dans ta table, mais ne s'afficherait plus dans le gridview.
Pour faire ça, si jamais ça t'intéresse, tu peux par exemple sur le onclick du button mis dans l'itemtemplate du templatefield du gridview t'inspirer de ceci (en vb) :
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim de As String "UPDATE Themes SET Etat 'T' WHERE idTheme = " & sender.namingcontainer.Cells(1).Text
Dim ds As SqlDataSource = CType(Page.FindControl("SqlDataSource1"), SqlDataSource)
ds.UpdateCommand = de
ds.Update()
End Sub
Mais peut-être quelque chose t'empêche-t-il de procéder ainsi ?
ggtry
Messages postés417Date d'inscriptionvendredi 13 juin 2008StatutMembreDernière intervention21 juillet 20101 23 juil. 2008 à 17:29
Salut,
Oui, dans le code j'ai utilisé l'une de mes tables. "Themes" est le nom de la table, "Etat" est le nom du champ dont je parle (que tu n'es pas obligé d'afficher dans le gridview d'ailleurs) et idTheme est l' identifiant-clef de ma table.
Ici, je suppose que tu crées une nouvelle colonne dans le gridview, de type templatefield, pour pouvoir y mettre un simple button asp, par exemple :
Dans le Text du Button j'ai mis "supprimer", mais l'action dans le code Button2_Click ne supprime rien, elle ne fait qu'un update du champ "Etat" de la table dans la bdd.Comme dans ta gridview ne s'afficheraient que ce qui est marqué à 'N', il suffit de récupérer la ligne sur laquelle se trouve le bouton cliqué et de faire une requête update qui dit, pour l'id de la ligne du bouton, de changer l'état en le mettant à T (cf. Dim de As String "UPDATE Themes SET Etat 'T' WHERE idTheme = " & sender.namingcontainer.Cells(1).Text). De la sorte, la ligne ne sera plus affichée dans le gridview, mais elle sera encore présente dans la table de ta bdd.
sender.namingcontainer.Cells(1).Text, dans le code du précédent message, récupère l'id qui se trouve ici dans la colonne 2 du gridview (la première cell est 0, la deuxième 1, etc.).
lg022
Messages postés21Date d'inscriptionjeudi 24 avril 2008StatutMembreDernière intervention28 juillet 2008 23 juil. 2008 à 14:33
La suppression marche nickel
je faisais nimp' (pas reveillé)
mais il y a quelques chose qui me plait pas
comme je travaille ave cune table lorsque je supprime une ligne ou des.
elle s'efface de ma table.
Pour y remédier j'ai crée une copie de cette table
mais elle me rentre les données en doublons
exemple:
je rentre comme ligne 12
13
14
je supprime 13
dans la table copier si je relance le lot DTS j'ai
12
13
14
12
14
lg022
Messages postés21Date d'inscriptionjeudi 24 avril 2008StatutMembreDernière intervention28 juillet 2008 23 juil. 2008 à 17:12
ta solution m'interesse beaucoup
mais a partir du Ensuite, tu pourrais créer un bouton dans un template field qui je décroche.
Je peux créer un champ mais comment la table va savoir que ce champ passe de N à T
il faut bien que dans mon gridview j'ai le critére Selectionner ou Supprimer
ici je pencherais plus par rapport à ta solution au Selectionner
pour ton bout de code le Theme c'est ta table?
je teste ceci demain
et encore merci de prendre le temps
lg022
Messages postés21Date d'inscriptionjeudi 24 avril 2008StatutMembreDernière intervention28 juillet 2008 24 juil. 2008 à 11:30
bon et bien apres avoir refait mon sqlDatasource en lui disant de m'afficher le Champ Etat ayant comme is NULL
et bien mon gridview m'affiche que mes enregistrement NULL