Java JSF

Fermé
ourysho Messages postés 34 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 14 décembre 2017 - Modifié le 29 nov. 2017 à 17:09
ourysho Messages postés 34 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 14 décembre 2017 - 30 nov. 2017 à 08:40
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


A voir également:

1 réponse

KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
29 nov. 2017 à 19:34
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
ourysho Messages postés 34 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 14 décembre 2017
29 nov. 2017 à 20:41
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
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
29 nov. 2017 à 21:30
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);
0
ourysho Messages postés 34 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 14 décembre 2017 > KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024
30 nov. 2017 à 08:40
Je te remercie encore ca l'aire de marcher après je continu de tester pour voir si pas de régression . Cordialement
0