Envoyé par : Utilisateur anonyme
Date : 22/03/2006 17:37
Bonjour,
on commence en précisant que je débute en Xul.
Je souhaite connaître le nombre de rows dans un tree qui vient d'être remplit par un RDF.
Soit un formulaire tout simple. Sur le bouton, j'ai un
oncommand="reloadTree('treeGrid','search.php');"
où treeGrid
est mon tree et search.php
la page php qui va générer mon RDF
Mon tree:
<tree id="treeGrid" flex="1" ref="urn:data:row" datasources="reloadTree('treeGrid');">
Fonction de recherche:
function reloadTree(treeId,datasources) { var tree = document.getElementById(treeId); var nom = getValue("textNom"); if(nom=="") { var query = ""; } else { var query = "?"; } if(nom!="") {query+="n="+nom+"&";} if (query!="") { query = query.substring(0,query.length-1); } var dsUrl=datasources+query; tree.setAttribute('datasources', dsUrl); alert(tree.view.rowCount); }
Le RDF généré est du type :
<?xml version="1.0" encoding="ISO-8859-1"?> <RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:row="http://dummy/rdf#" xmlns:NC="http://home.netscape.com/NC-rdf#"> <RDF:Bag about="urn:data:row"> <RDF:li> <RDF:Description> <row:id NC:parseType="Integer">1</row:id> <row:groupe NC:parseType="String">Fournisseurs</row:groupe> <row:nom NC:parseType="String">ABCD</row:nom> <row:prenom NC:parseType="String">Pascal</row:prenom> </RDF:Description> </RDF:li> </RDF:Bag> </RDF:RDF>
Mon tree se refresh correctement, les infos sont bien placées là où elles doivent. Tout va bien. Sauf...
Sauf que j'aimerais connaître le nombre d'éléments retournés par ma recherche. Je me base donc sur tree.view.rowCount
via un alert()
(l'information sera plus tard affichée directement sur l'interface).
Lors du premier clic, il me retourne 0 rows et sur les clics suivants, la bonne valeur. J'ai comme l'impression qu'il y a un léger décalage :)
Est-ce qu'il existe une façon de savoir lorsque "le chargement des données" est effectué, de façon à afficher mon nombre d'enregistrement à ce moment ? Ou une autre méthode d'injection des données ?
Merci d'avance, Freud
Envoyé par : omicron
Date : 22/03/2006 19:49
Le chargement RDF est asynchrone; c'est à dire que tu prends la main avant que toutes les données soient chargées.
Deux solutions pour obtenir le nombre de lignes:
Envoyé par : Utilisateur anonyme
Date : 23/03/2006 11:09
Merci pour cette réponse. Je vais me tourner vers l'observer et voir ce que cela peut donner.
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.