2010-11-29 10 views
0

Ich habe eine Registerkarte wie folgt, in denen ich dynamische Registerkarte mit Bindung in Java auswählen.Tab Auswahl Problem in JSF Icefaces

<ice:panelTabSet var="currentTab" partialSubmit="true" selectedIndex="#{viewBatchBean.tabSelectedIndex}" 
      value="#{viewBatchBean.batch.batchConfigurationTabList}" 
      tabChangeListener="#{viewBatchBean.showDefaultValueForTab}" 
      binding="#{viewBatchBean.panelTabSetRef}"> 

hier gesetzt i wie unten Tabulatorindex ..

panelTabSetRef.setSelectedIndex(0); 

es Register gemäß gegebenen Index gesetzt hat, aber nicht den Fokus darauf setzen.

Antwort

0

Füllen des panelTabSetRef.

//--- 

for(SomeObject tabConfig : batchConfigurationTabList){ 
    PanelTab panelTab = new PanelTab(); 
    // Setting appropriate values in panelTab 
    panelTabSetRef.getChildren().add(panelTab); 
} 

//--- 

Fetching die PanelTab Komponente aus PanelTabSet & sie entsprechend verarbeiten.

List<UIComponent> panelTabs= panelTabSetRef.getChildren(); 

// Selecting tab to set focus 

PanelTab focusTab = (PanelTab) panelTabs.get(tabSelectedIndex); 
String tabId = focusTab.getId(); 

//--- 

Der Fokus kann auf der ausgewählten Registerkarte wie folgt mithilfe von Java Script festgelegt werden.

JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), "someJSMethodToSetFocus('someForm:"+tabId+"');"); 

Index aus gebundener Ausnahme ausgelöst wird, weil die Platte & holen Kinder von ihm besiedelt worden ist. Geben Sie den Wert direkt als <ice:panelTabSet value="#{viewBatchBean.batch.batchConfigurationTabList}"/> ein, wenn die Seite entsprechend gerendert wird. Manuelles Füllen des panelTabSetRef.

In der neueren IceFaces-Version wurde das Attribut tabIndex zu panelTabSet hinzugefügt.

+0

Lösung, die Sie gegeben ist gut, aber wenn ich getChildren() -Methode, gibt es mir Größe = 1, wenn in meiner UI ist es 6 ... so gibt es mir Fehler als Index außerhalb des Bandes. – Sweety

+0

können Sie posten etwas Code, also mach dir eine bessere Vorstellung davon. –

+0

In meinem Code gesetzt Fokus auf Registerkarte dynamisch, aber nicht aktualisieren Sie den Tab..once ich klicke auf diesen Tab dann nur es erfrischend..code ist zu viel lang, so kann ich es nicht posten :) – Sweety