Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# comment obtenir un onblur sur une treecell?

Envoyé par : Gregco

Date : 28/09/2007 00:26

Bonjour à tous,

Voici mon arbre

<tree flex="6" hidecolumnpicker="true" id="arbre_serveur" width="450px" minheight="113px" maxheight="113px" editable="true" 
                   datasources="chrome://pigron/content/properties/listeserveurs.rdf" ref="urn:ils">
<treecols>
	<treecol label="N° " flex="3" />
	<treecol label="Serveur" flex="2" />
	<treecol label="Description2" flex="10" />
	<treecol label="id" hidden="false"/>
</treecols>
<template>
		<treechildren>
			<treeitem uri="rdf:*">
			<treerow>
				<treecell label="rdf:http://ils/rdf#priorite" editable="false"/>
				<treecell label="rdf:http://ils/rdf#ip"/>
				<treecell label="rdf:http://ils/rdf#desc"/>
				<treecell label="rdf:http://ils/rdf#idunique" />
			</treerow>
		</treeitem>
	</treechildren>
</template>
</tree>

Voici mon code js.la fonction tree_init() est exécuté sur le onload de l'object window function tree_init(tree) {

try
{
	tree.childNodes[1].firstChild.firstChild.firstChild.firstChild.addEventListener('blur',tree_blur(),false);
}catch(e){alert(e);}
}
function tree_blur()
{
alert("ok");
}

avec comme résultat

Erreur : uncaught exception: [Exception... "Could not convert  
JavaScript argument"  nsresult: "0x80570009  
(NS_ERROR_XPC_BAD_CONVERT_JS)"...

faisant référence à ma ligne .addEventListener

Je veux utiliser les tree editable et pouvoir sauvegarder mes données quand une cellule a été modifiée. Je pensais utiliser un observateur d'évenement de type "blur" mais je ne suis pas certain de ma démarche.

1. Es-ce que je procèdes correctement? 2. Si oui, pourquoi ai-je cette erreur et comment y remédier, si non, dans quel sens dois-je regarder?

D'avance un grand merci pour vos réponses Grégoire

# Re: comment obtenir un onblur sur une treecell?

Envoyé par : Paul Rouget

Date : 28/09/2007 15:55

remplace tree_blur() par tree_blur

# Re: comment obtenir un onblur sur une treecell?

Envoyé par : Gregco

Date : 28/09/2007 17:45

merci pour ta réponse Paul, je n'ai effectivement pas d'erreur, mais je n'ai pas non plus d'alert("ok") quand mes treecell perdent le focus...

# Re: comment obtenir un onblur sur une treecell?

Envoyé par : hhf

Date : 28/09/2007 19:13

moi, je ne ferais pas comme ca.
Je rajouterais un handler sur le doubleclick du tree.
je recupererais a partir des coord de la sourie la cell concerné.
Puis j'ouvrirais un prompt avec la valeur actuelle dedans.
Sur le ok, je send la new value au server, qui me confirme que l'update c'est bien passé.
Enfin, je recharge le RDF.

Avantages :

  • Tu peux mettre le tree en flags="dont-build-content".
  • Possibilité de mettre le tri sur les colonnes.
  • Suppression d'un bon paquet de scripts inmaintenablent qui permettraient la mise à jour de l'arbre.
  • Et surtout tu es ainsi sure de garder la coherence des données entre celles du serveur et celles affiché sur le client.

Désavantages : tu recharges le rdf souvent.

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.