JSF Icefaces 中的选项卡选择问题

发布于 2024-10-05 15:38:41 字数 504 浏览 2 评论 0原文

我设置了一个选项卡,如下所示,我想在其中使用 java 中的绑定来选择动态选项卡。

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

在这里,我设置选项卡索引如下。

  panelTabSetRef.setSelectedIndex(0);

它根据给定索引设置选项卡,但不将焦点设置在它上面。

I have one tab set as below ,in which i want select dynamic tab using binding in java.

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

here i set tab index as below..

  panelTabSetRef.setSelectedIndex(0);

it set tab as per given index but doesn't set focus on it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故事和酒 2024-10-12 15:38:41

填充 panelTabSetRef。

//---

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

//---

从PanelTabSet中获取PanelTab组件&对其进行相应处理。

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

// Selecting tab to set focus

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

//---

可以使用 Java 脚本将焦点设置在所选选项卡上,如下所示。

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

由于面板尚未填充且未填充,因此引发索引越界异常。从中获取孩子。直接赋予价值

相应地呈现页面时填充。因此手动填充panelTabSetRef。

在较新的 IceFaces 版本中,tabIndex 属性已添加到 panelTabSet 中。

Populating the panelTabSetRef.

//---

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

//---

Fetching the PanelTab component from PanelTabSet & processing it accordingly.

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

// Selecting tab to set focus

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

//---

Focus can be set on the selected tab as below using Java Script.

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

Index out of bound exception is raised because the panel has not been populated & fetching children from it. Giving value directly as
<ice:panelTabSet value="#{viewBatchBean.batch.batchConfigurationTabList}"/>
populates when the the page is rendered accordingly. So manually populating the panelTabSetRef.

In newer IceFaces version, tabIndex attribute has been added to panelTabSet.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文