Categories > TinyButStrong general (FR) >

tableau dynamique + formatage conditionel

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Cemir
Date: 2009-11-03
Time: 18:42

tableau dynamique + formatage conditionel

Hello,

j'ai ceci :

tpm :
<div style='overflow:scroll; height:500px'>
  <table class='TblData'>
    <tr class='Head'>
      <td>#</td><td>
        [c0.val;block=td]
      </td>
    </tr>
    <tr class='Odd'>
      <td>[r.#]</td><td>
        [r.[c1.key;block=td];block=tr]
      </td>
    </tr>
    <tr class='Even'>
      <td>[r.#]</td><td>
          [r.[c2.key;block=td];block=tr]
      </td>
    </tr>
  </table>
</div>

php :
$TbsWin->LoadTemplate('tpl/frames/FrmFileLines.tpl');
$TmpTbl = $MyComp->GetDiffTab();  //renvoie un tab à 2 dimensions
$TbsWin->MergeBlock('c0,c1,c2',$TmpTbl[0]);
$TbsWin->MergeBlock('r',array_slice($TmpTbl,1));
$TbsWin->Show(TBS_NOTHING);
$Disp = $TbsWin->Source;

je voudrais que mes lignes (<tr>) soient affichés dans une couleur en fonction de la colonne 7, cette colonne peut avoir des valeurs de 0 à 4 et j'ai des styles css de 0 à 4.
il faudrait donc trouver un moyen d'inclure la valeur de la col. 7 dans ma balise tr
du genre <tr class="[col7.val]">
mais je ne vois vraiment pas comment.
Ah oui, à savoir, pour la ligne header (c0) ça ne doit pas être fait, et les lignes paires et impaires peuvent être recoupés (c1 et c2)

Question supplémentaire: comment faire pour que ce ne soit pas la 7e col, mais la dernière et qu'en plus elle ne soit pas affichée


Merci,
Cemir
By: Skrol29
Date: 2009-11-03
Time: 22:21

Re: tableau dynamique + formatage conditionel

Salut Cemir,

Si la couleur varie pour chaque ligne, alors l'info couleur doit être dispo pour chaque enregistrement. Et me semble que c'est le cas.
Il te faut donc <tr class="[r.7]">.

Si tu ne veux que ce soit la dernière colonne, et qu'en plus elle ne soit pas affichée, le plus simple c'est de choper l'id de cette colonne côté PHP, avant la fusion de 'c0,c1,c2' et de 'r'.
Quelque chose comme :
$ColMax = count($TmpTbl[0]) -1;

A partie de là, tu coupes $TmpTbl[0] avant la fusion de 'c0,c1,c2'. Et le reste ça roule tout seul.