Java JSF [Fermé]

Signaler
Messages postés
34
Date d'inscription
jeudi 20 novembre 2008
Statut
Membre
Dernière intervention
14 décembre 2017
-
Messages postés
34
Date d'inscription
jeudi 20 novembre 2008
Statut
Membre
Dernière intervention
14 décembre 2017
-
Bonjour,
j'ai un souci pour faire la tabulation du boutton clavier lorsque je navigue entre les champs. l'ordre voulu est le 1-2-3-4-5 mais la tabulation me donne cet ordre là : 1-2-5-3-4-7.
précision: (1,2),(3,4),(8,9) c'est le même composant<h:inputText/> qui est réutilisé.
voir extrait code


<h:panelGrid columns="4" columnClasses="verticalAlignMiddle" cellspacing="0"
cellpadding="0">

<h:inputText style="width:#{col.gr.textLangRenderer.size};" id="textLang1"
value="#{col.formInputValue} onkeydown="cancelEnterKey()" maxlength="#
{col.gr.textLangRenderer.maxLength}" />

<h:outputText value=" "/>

<h:inputHidden id="keyLang" value="#{col.keyDataLang}" />

<v:imageButton imageURL="images/globe2.png" actionListener="#
{formulairesManagedBean.selectDataLang}" />
</h:panelGrid>


et et le input numero 7 donne

<h:inputText style="width:#{col.gr.textRenderer.size};" id="texte1"
value="# {col.formInputValue}" rendered="#{col.gr.textRenderered}"
onkeydown="cancelEnterKey()" maxlength="#
{col.gr.textRenderer.maxLength}" >
</h:inputText>


pas pratique d'utiliser tabIndex=val car un même input est réutilisé plusieurs fois c'est un formulaire générique donc l'index peut varier selon les cas
. Si vous avez un piste à me proposer pour résoudre ce problème je vous remercie


1 réponse

Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
2 856
Bonjour,

Le tabIndex est pourtant une bonne piste, par contre il faut lui donner une valeur dynamique, par exemple à l'aide d'une méthode qui incrémente un index à chaque appel.

tabindex="#{formulairesManagedBean.getTabIndex}"

private int tabIndex=0;

public int getTabIndex() {
    return tabIndex++;
}
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
34
Date d'inscription
jeudi 20 novembre 2008
Statut
Membre
Dernière intervention
14 décembre 2017

bonjour,
Merci KX d'avoir pris ton temps pour me repondre je vais essayer pour te redire . meme si ca resout pas le problème mais ca servira de toute facon c'est une bonne idée de le faire comme ca. le souci c'est un formulaire trop complexe qui varie selon plusieurs cas.
cordialement
Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
2 856
Ce n'est pas grave qu'il varie, peu importe que les valeurs du tabIndex change pour un même composant d'un cas sur l'autre, la seule chose importante c'est que ce soit en ordre croissant au moment où le formulaire est affiché.

On peut également aller plus loin, en utilisant une Map côté Java qui va faire le lien entre le composant et sa valeur de tabindex.

Exemple (à vérifier)

tabindex="#{formulairesManagedBean.getTabIndex['monComposant']}"

private Map<String, Object> tabindex = new TreeMap<String, Object>();

public Map<String, Object> getTabIndex() {
    return tabIndex;
}

Il faudra évidement que côté Java tu initialises à un moment le tabindex pour chaque composant :

tabindex.put("monComposant", 3);
Messages postés
34
Date d'inscription
jeudi 20 novembre 2008
Statut
Membre
Dernière intervention
14 décembre 2017
>
Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021

Je te remercie encore ca l'aire de marcher après je continu de tester pour voir si pas de régression . Cordialement