Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# listbox et nombre de rows non modifiable

Envoyé par : PerfectSlayer

Date : 28/09/2009 23:15

Bonjour à vous,

Il s'agit du mon premier message sur le forum, merci d'être indulgent ^^'

J'aurais souhaité vos lumières sur un petit problème. J'ai une listbox dans un panel. Cette dernière ne contient à la base aucun élément et n'est pas affichée. Par du javascript, j'ajoute des éléments et affiche le panel. La listbox prend alors une taille adéquate pour afficher tous les éléments soient visibles et sans plus.

Lors qu'en javascript, je rajoute un ou des éléments, la listbox s'aggrandit comme attendu. (je fais celà alors que le panel est caché)

Mais lorsque je repeuple la listbox avec moins d'éléments qu'à l'origine, elle garde sa taille originale et ne colle pas parfaitement au nombre d'éléments.

Voici les sources :

<panel id="scrollupfolderUrlsPanel" position="after_start" noautofocus="true">
    <listbox id="scrollupfolderUrlsListbox" rows="1" flex="1">
    </listbox>
</panel>

Le javascript est à base de listbox.appendItem() et de listbox.removeItemAt(). J'ai essayé d'utiliser la propriété "rows" avec le javascript : listbox.setAttribute("rows", ...) mais ca ne produit aucun effet (je fais avant l'affichage du panel)

J'ai aussi essayé de rajouter l'attribut flex="1" mais sans changement.

J'ai du rater quelque chose. En résumé, je cherche à pouvoir remplir / vider une listbox et que cette dernière soit exactement de la taille du nombre d'éléments (s'il n'y a que deux éléments, qu'elle ne soit pas plus grande que ces deux éléments).

Merci à vous pour vos coups de main ;)

P.S. : Je peux poster plus de sources, ou mettre faire des captures d'écrans de ce que je souhaite obtenir. N'hésitez à demander !

# Re: listbox et nombre de rows non modifiable

Envoyé par : jordan

Date : 29/09/2009 12:54

Bonjour,

Et en modifiant la propriété rows à chaque modification du nombre d'éléments dans la listbox en se basant sur le nombre d'éléments retournés par getRowCount() ?

++

# Re: listbox et nombre de rows non modifiable

Envoyé par : PerfectSlayer

Date : 29/09/2009 22:35

En effet, cela a bien fonctionné. Je fixais l'attribut "rows" aux nombres d'éléments de mon tableau javascript sur lequel je me basais pour remplir la listbox (Array.length) mais je ne sais pas pourquoi, ça ne fonctionnait pas bien. Merci.

Cette solution semble bien marcher mais pose encore problème si la listbox n'a jamais été affichée au paravent.

En effet, alors que mon panel n'a jamais été montré, j'ajoute des éléments dans la listbox, fixe la taille (paramètre "rows") à la valeur getRowCount() puis affiche le panel qui contient la listbox.

Or cette dernière n'affiche aucun élément ! (elle est toute petite) Ceci s'explique par le fait que getRowCount() me retourne 0 lorsque la listbox n'a jamais été affichée.. Même si elle contient des éléments à l'intérieur (j'ai fais l'essai en rajoutant des éléments en dur dans le XUL).

Par contre, une fois affichée, la méthode getRowCount() affiche le bon nombre.

Avez-vous déjà observé un comportement similaire ? Est-ce que je fais quelque chose de mal ou obtenez-vous le même comportement ? Je suis un peu désapointé par rapport à ça..

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.