Bonjour.

Sur Dojo 1.3.1.

J'ai un problème avec un grid. Quand je le rafraichis, le nombre de ligne blanches qu'il contient augmente.

Par exemple, au premier appel, j'ai une grid de X pixels de haut ( avec une ligne renseignée ).

Pour le rafraichir, j'utilise le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
    function majTable(param)
    {
      jsonStore.close();
      jsonStore._jsonFileUrl = "ventes.php?"+param;
      jsonStore.fetch();
      myGrid._refresh();
    }

Cette fonction est appelée par d'autres fonctions suite au clic sur divers boutons, par exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
    function changeSemaine()
    {
      var sem = dijit.byId("dlg_sem").attr("value");
      dojo.byId("titre_ventes").innerHTML="Ventes de la semaine n°"+sem;
      console.debug(sem);
      majTable("s="+sem);
    }
A chaque appel de majTable, la taille de la grid grandit : 2 X, 3 X, etc.
Si quelqu'un a une idée pour empêcher cela, je suis preneur.

Le store et la grid sont définis comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    <span  dojoType="dojo.data.ItemFileReadStore"
           clearOnClose="true"
           id="jsonStore"
           jsId="jsonStore"
           url="ventes.php?j=today">
    </span>
 
<!--     La table des ventes par magasin -->
    <table dojoType="dojox.grid.DataGrid"
           store="jsonStore"
           query="{ mm: '*' }"
           style="width : 100%;"
           id="myGrid"
           jsId="myGrid"
           onRowClick="clicLigne"
           selectionMode="single" >
Le store et la grid sont dans une page indépendante qui est chargée dans un div :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
  <div id="zoneclient"
       dojoType="dojox.layout.ContentPane"
       region="center"
       splitter="true">
    <blockquote>
      Bienvenue..
    </blockquote>
  </div>
par la fonction suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
    function ldh(page)
    {
      dijit.byId('zoneclient').attr('href',page+".html");
    }
...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
      <ul>
        <li><a href="javascript:ldh('ventes');">Ventes</a></li>
      </ul>
Quand je clique sur ce lien, la page intérieure se recharge et la grid reprend sa taille normale.

David.