|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2007 Messages : 60 ![]() |
Salut,
Voilà mon problème que j'avoue avoir du mal à comprendre. Dans mon application j'ai un datagrid qui est relié à une base de données jusque là nickel, mais j'ai un bouton supprimer qui me permet de supprimer une donnée que je sélectionne dans mon datagrid, la suppression se passe bien, mais je voudrais qu'après ma suppression mon datagrid se rafraichisse pour ne plus afficher le champ que j'ai supprimé. J'ai fait pas mal de recherche et j'ai rien trouvé j'ai essayé: datagrid.dataprovider.refresh(); Mais sans succès |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Inscription : janvier 2008 Messages : 249 ![]() |
Bonjour, la suppression se fait dans la BDD ou juste au front si c'est dans la BDD inspecte le retour de ton service de suppression et si c'est ok relance ton service qui remplis ton DG la première fois et normalement tu n'auras plus de problème
Bon courage Samy
__________________
http://www.m-ataf.com (En cours de construction) |
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Je sais pas si c'est possible, mais supprimer la ligne sélectionné sur le datagrid après confirmation venant du serveur. Ainsi, tu réduis le taille des données transférées.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
Citation:
Par contre mettre la référence de la ligne (id_datagrid.selectedItem...) au moment du clic vers le service pour éviter qu'un changement de ligne par l'utilisateur avant le retour du service ne supprime la mauvaise occurrence de ligne |
|
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2007 Messages : 60 ![]() |
Merci tout le monde de votre aide j'ai résolu mon problème a tourne nickel. Par contre j'ai une autre question qui je pense est plus complexe. J'ai un datagrid liée à une base de donnée par exemple ma table à 4 champs. Mais si j'ajoute a ma table 1 champ par exemple depuis phpmyadmin, est-il possible que mon datagrid rajoute automatiquement ce nouveau champ?
|
|
|
00
|
|
|
#6 | |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Citation:
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
Si tu fais un
depuis ton service, tu vas construire un datagrid à l'image de ta table, je comprends pas trop ton problème ? |
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2007 Messages : 60 ![]() |
je me suis peut être mal expliqué.
Enfaite j'ai créer une bdd de donne sur php my admin dans celle ci j'ai fait une table. Cette table contient 4 champs un champ id, nom, prénom et mail. Dans mon application j'ai un datagrid qui affiche toutes les donné de ma table avec la requête SELECT * from table. Jusque la tout marche bien. Mais par exemple si je vais sur php my admin et que je rajoute à ma table un champ note par exemple, est ce que mon datagrid va détecter automatiquement ce nouveau champ et rajouter la colonne note au datagrid automatiquement?J'espère avoir été plus clair. Merci |
|
|
00
|
|
|
#9 | ||
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
tu le dis toi même, tu récupères tout de ta table avec un
Donc que tu ai 2 champs ramené ou 10 c'est exactement la même chose, ton datagrid les affichera tous. Après, tu peux modifier les paramètres des colonnes du datagrid avec la propriété columns du datagrid qui prendra en paramètre un tableau d'objet de DataGridColumn Ex : Code :
|
||
|
|
00
|
|
|
#10 |
|
Membre confirmé
![]() Inscription : janvier 2008 Messages : 249 ![]() |
Bonjour, En fait, je pense qu'il veut qu'en ajoutant un enregistrement dans la BDD manuellement, que ça ce repercute automatiquement sur le FRONT, si c'est vraiment ça non, il te faut un processus coté FRONT qui envoie des requetes chaque 5 à 10 minutes et là c'est sur que tu verra ton enregistrement apparaitre
Bon courage Samy
__________________
http://www.m-ataf.com (En cours de construction) |
|
|
00
|
|
|
#11 | ||
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Non c'est bien l'ajout d'un champs dans la base de données qu'il parle. Est ce que dans la datagrid générée il va prendre en compte cette nouvelle structure.
Madfrix a bien compris la demande par contre son exemple n'est peut être pas adapté parce que là il présente un script non dynamique. Du moins il faudrait un script un poil plus dynamique. En gros Désolé je connais pas la syntaxe exacte mais c'est ainsi que je verrais les choses. Code :
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
||
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
A ca non effectivement c'est pas possible
Il faudrait lier un trigger par exemple à un serveur de sockets mais c'est pas faisable surtout avec MySQL. Le seul truc que tu peux faire en restant avec les sockets, c'est faire un count de ta table à intervalle régulier et balancer une info à l'appli si ce count change lui disant de recharger le datagrid mais c'est lourd... EDIT: @Berceker : si j'avais bien compris cela, le fait est que le datagrid est lié à un dataprovider (arrayCollection). Pour chaque entrée de l'arrayCollection, le datagrid va ajouter une colonne automatiquement donc aucun boulot à faire. Mon code lui donne juste des pistes de modification par exemple pour un champ en base nommé prix_produit on souhaitera probablement un headerText (entete) de type "Prix du produit" ce qui implique un peu de modif manuelle |
|
|
00
|
|
|
#13 | |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Citation:
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
Oui, c'est ca l'avantage de l'arrayCollection et du binding, un ajout/suppression dans l'arrayCollection met à jour le composant qui est lié à l'arrayCollection
Binder une variable est cependant plus long en terme de traitement que de ne pas la binder, donc binder un minimum possible de variables |
|
|
00
|
|
|
#15 |
|
Membre confirmé
![]() Inscription : janvier 2008 Messages : 249 ![]() |
désolé, je n'ai pas bien saisi la problématique, je pense que tu as raison, avec l'arrayCollection.
__________________
http://www.m-ataf.com (En cours de construction) |
|
|
00
|
|
|
#16 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2007 Messages : 60 ![]() |
Merci à vous tous pour vos réponse je vais creuser dans les directions que vous m'avais donnés, je vous tiendrez au courant de l'avancement du projet.
|
|
|
00
|
|
|
#17 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2007 Messages : 60 ![]() |
Salut à tous,
voila j'arrive à rajouter une colonne dynamiquement à mon datagrid pas de souci, mais le problème que j'ai maintenant c'est que dans cette colonne aucun donnés s'affiche pourtant dans ma base de donné le champ que je rajoute a mon datagrid contient bien des données. La requête que je fait pour mon datagrid est pourtant un SELECT * from table. Comment sa se fait? mon datagrid ne fait pas la liaison entre la colonne que je rajoute qui porte le nom test et le champ test de la base de donnée? Merci |
|
|
00
|
|
|
#18 | ||
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
il faut que tu mettes dans la propriété dataField de ta DataGridColumn, le champ correspondant à ta requête SQL retournée. Ex :
Code :
|
||
|
|
00
|
|
|
#19 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2007 Messages : 60 ![]() |
Alors là il y a quelque chose que je ne comprend pas
Par contre si a la place de test dans mon datafield je met un des 4 quatre champs déjà affiché par mon datagrid sa fonctionne. Voila le code du bouton qui me rajoute ma colonne le souci ce trouve peut-être ici: Code :
|
||
|
|
00
|
|
|
#20 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
Je pige pas !
2 choses : soit tu ramènes le champ test via un service et la dataGrid contient cette colonne naturellement, soit tu ne ramènes pas le champ test de ton service et ton dataField ne peut donc pas trouver ce champ dans ton dataProvider à moins qu'explicitement tu construises un objet test dans ton dataProvider. Comment est il construit ton dataProvider alimentant ta dataGrid ? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com