IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XMLRAD Discussion :

Checkbox


Sujet :

XMLRAD

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2003
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 214
    Points : 132
    Points
    132
    Par défaut Checkbox
    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.

  2. #2
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    un input checked n'est pas transmis s'il n'est pas checked.

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2003
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 214
    Points : 132
    Points
    132
    Par défaut
    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 ....

  4. #4
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    comprend pas bien: tu en checks 1 et d'autre sont alors checked en meme temps ?

  5. #5
    Membre habitué
    Inscrit en
    Janvier 2003
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 214
    Points : 132
    Points
    132
    Par défaut
    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 ...

  6. #6
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    le problème est peut etre lié au XMLC_Pivot si tu l'utilises...
    Comment effectues al mise à jour ? tu utilises un match ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 75
    Points : 66
    Points
    66
    Par défaut
    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

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 85
    Points : 99
    Points
    99
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <input type="checkbox" name="MON_PIVOT[{position()}].CHECKED" value="1">
      <xsl:if test="CHECKED='1'">
        <xsl:attribute name="checked"/>
      </xsl:if>
    </input>
    Peux tu aussi vérifier le contenu de l'InputDoc (sauve l'inputdoc sur disque avec un simple InputDoc.Save('D:\Temp.xml')) pour voir si chacun des enregistrements de ton pivot ont tous le checked ou pas ?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 75
    Points : 66
    Points
    66
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="MON_PIVOT[{position()}].MonCode" value="{MonCode}"/>
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    < <input type="checkbox" name="MON_PIVOT[{position()}].MonCode" value="1"> 
      <xsl:if test="MonCode='1'"> 
        <xsl:attribute name="checked"/> 
      </xsl:if> 
    </input>>
    En execution je coche une checkbox, et après un petit select * from ma table je constate que toutes les valeurs du champs où était posé mon checkbox ont été modifiées à partir de la première coche.

    : Qu'est ce que c'est qu'ce binnnnse :

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 284
    Points : 349
    Points
    349
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <Context>
      <ORG>
        <CHECKED>1</CHECKED>
        ...
      <ORG>
      <ORG>
        <CHECKED>1</CHECKED>
        ...
      <ORG>
      <ORG>
        ...
      <ORG>
    </Context>
    On remarque que le InputDoc est construit sans le 3eme checked, puisque la checkbox n'a pas été renvoyée...

    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...

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 75
    Points : 66
    Points
    66
    Par défaut
    Et bien voilà, c'est bon

    Merci Nicolas.

    J'ai donc suivit tes instructions en ajoutant le code suivant dans mon BeforeInstruction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       if Input.GetValue('CHECKED')  <>  Context.GetValue('CHECKED') then
          Skip := True;
    Et en ajoutant un assign fils dans mon match :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <Assign Name="PurjContext">
    	<Fields>
    		<Field>
    			<Destination>CONTEXT</Destination>
    			<Name>CHECKED</Name>
    			<Source>INPUT</Source>
    			<SourceField>CHECKED</SourceField>
    			<Value/>
    		</Field>
    	</Fields>
    </Assign>

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 284
    Points : 349
    Points
    349
    Par défaut
    Et bin niquel !

Discussions similaires

  1. [JSP]checkbox
    Par orisis dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 16/04/2013, 13h53
  2. [STRUTS]Pb de checkbox
    Par larude dans le forum Struts 1
    Réponses: 8
    Dernier message: 08/04/2004, 16h07
  3. [VB.NET] Insérer une colonne de CheckBox dans un DataGrid
    Par Manue.35 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/05/2003, 11h44
  4. Couleur d'un CheckBox
    Par benj63 dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/07/2002, 14h48
  5. CheckBox en Read Only
    Par MrJéjé dans le forum C++Builder
    Réponses: 7
    Dernier message: 23/06/2002, 15h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo