|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() |
Bonjour,
j'essaie pour la 1° fois d'utiliser des checkbox dans une table. Ca marche à peu près bien sauf quand j'update mon fichier .... en effet, dès qu'un checkbox est checked, tous les suivants sont enregistrés en checked. D'après ce que j'ai pu voir, le champ TABLE.[Indice].MONCHECK n'existe pas dans le context s'il n'est pas checked. Mais je pense que ja passe à côté d'un truc très simple ... Merci.
__________________
Renaud W2003 / XP /VISTA SQL SERVER / ORACLE ADO |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() |
un input checked n'est pas transmis s'il n'est pas checked.
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() |
ok, c'est ce que j'avais compris, mais comment faire ???? car à partir du moment où j'en ai 1 de checked, tous les suivants le sont ....
__________________
Renaud W2003 / XP /VISTA SQL SERVER / ORACLE ADO |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() |
comprend pas bien: tu en checks 1 et d'autre sont alors checked en meme temps ?
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() |
non, j'explique le truc :
1 - j'affiche une Datatable avec 1 checkbox sur un champ. l'initialisation se fait sans pb avec la valeur contenue dans ce champ. 2 - je check quelques lignes 3 - je valide, ce qui me lance un xmlgram d'update des lignes de mon fichier. Le pb se situe à ce niveau là ; tous les enregs en dessous du premier checked sont enregistrés en checked. Bon, j'ai pris une autre voie pour gérer ça et elle marche (image checked) mais je voudrais bien comprendre le truc ...
__________________
Renaud W2003 / XP /VISTA SQL SERVER / ORACLE ADO |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() |
le problème est peut etre lié au XMLC_Pivot si tu l'utilises...
Comment effectues al mise à jour ? tu utilises un match ?
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2002 Messages : 75 ![]() |
Moi j'ai le même problème que "rgarnier".
J’ai le résultat d’une recherche sous la forme d’une grille et sur la 1er colonne j’ai posé des checkbox toutes initialisées en « non checked » (pas d’attribut checked). J’utilise des XMLC_Pivot pour ma mise à jour en masse. Toutes les données sont correctement updatées sauf pour les checkbox. Il semblerai qu’à partir de la première checkbox checked XMLrad considère toutes les autres checkbox comme checked. Est ce que quelqu'un arrive à reproduir l'erreur ? Lux |
|
|
00
|
|
|
#8 | ||
|
Membre régulier
![]() Inscription : janvier 2003 Messages : 85 ![]() |
Moi je ne rencontre aucun problème pour faire ce que tu fais. Décris moi comment tu as fais ta checkbox. Il faut que ce soit du genre :
Code :
__________________
Julien C. |
||
|
|
00
|
|
|
#9 | ||
|
Nouveau Membre du Club
![]() Inscription : juillet 2002 Messages : 75 ![]() |
Voici une manière simple de reproduir mon erreur :
En utilisant le wizzard d'xmlrad de la "Data Grid' je modifie mon XSL en remplaçant pour une colonne : Code :
<input type="text" name="MON_PIVOT[{position()}].MonCode" value="{MonCode}"/>
Code :
|
||
|
|
00
|
|
|
#10 | ||
|
Membre éclairé
![]() |
Hello hello...
Alors, le comportement que vous rencontrez tous les 2 est normal et lié à http, html et à la gestion du Context par xmlrad Lorsque vous utilisez des checkboxes, il faut noter que seuls les checkboxes cochées sont renvoyées dans le formulaire, et donc seules les cochées se retrouvent dans le Context. on aurait par exemple : XMLC_PIVOT = ORG ORG[1].CHECKED = 1 (cochée) ORG[2].CHECKED = 1 (cochée) ORG[3].CHECKED = (pas cochée, donc pas passé) Le Framework construit alors le InputDoc. Code :
Maintenant, lorsque le Match rencontre dans l'InputDoc le premier élément ORG, il va placé dans le Context tous les éléments fils : A ce moment là, on aura Context.Values['CHECKED'] := 1; Pour le deuxième élement, le Match remplit le Context avec CHECKED = 1 comme précédement. On aura toujours Context.Values['CHECKED'] := 1; Et finallement, quel est l'état du Context pour le troisième élément ??? Et bien surprise, le Context conserve la précédente valeur (CHECKED = 1) et comme la valeur CHECKED = 0 n'est pas passée (seules les checkboxes cochées sont envoyées...), le Match ne peut pas pas mettre à jour le Context, puisque l'élément <CHECKED> n'existe meme pas dans l'InputDoc Ainsi, c'ets bien le comportement que vous aviez tous les deux observé : xmlrad met à jour tous les enregistrements en dessous du premier coché. Quelle solution ? La plus simple est certainement de placer un Assign qui écrase le Context avant que le XMLGram ne boucle sur le Match. on aurait alors : Match |- DBBatch |- Assign On peut ainsi replacer la valeur CHECKED à 0 ou à '' sans code. Il faut ensuite faire Skip := True dans le BeforeInstruction en fonction de l'état du Context pour sauter ou non l'éxécution du DBBatch. Voila voila...
__________________
Nicolas |
||
|
|
00
|
|
|
#11 | ||||
|
Nouveau Membre du Club
![]() Inscription : juillet 2002 Messages : 75 ![]() |
Et bien voilà, c'est bon
Merci Nicolas. J'ai donc suivit tes instructions en ajoutant le code suivant dans mon BeforeInstruction Code :
Code :
|
||||
|
|
00
|
|
|
#12 |
|
Membre éclairé
![]() |
Et bin niquel !
__________________
Nicolas |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com