Java JSF

ourysho Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -  
ourysho Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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   Statut Membre Dernière intervention  
 
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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   Statut Membre Dernière intervention   > KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention  
 
Je te remercie encore ca l'aire de marcher après je continu de tester pour voir si pas de régression . Cordialement
0