当前位置: 首页 > 知识库问答 >
问题:

Primefaces选项卡视图动态

唐照
2023-03-14

在我的应用程序中,我想使用一个动态tabView,其中每个选项卡都有一个不同页面的< code>ui:include。我有一个扩展< code>Tab的< code>TabObject列表。< code>TabObject有一个xhtml页面作为字符串属性:

public class TabObject extends Tab  {
   private String page;
   ...
}

在我的第一次尝试中,我想动态添加选项卡:

<p:tabView dynamic="true" value="#{tabViewManagedBean.tabs}" var="tab_ext" activeIndex="#{tabViewManagedBean.activeIndex}" >
  <p:ajax event="tabClose" listener="#{tabViewManagedBean.onTabClose}" />
  <p:ajax event="tabChange" listener="#{tabViewManagedBean.onTabChange}"/>
   <p:tab title="#{tab_ext.title}" closable="#{tab_ext.closable}" >
    <ui:include src="#{tab_ext.page}" />
   </p:tab>
</p:tabView>

但是ui:include不适用于使用此技术的变量tab_ext。到目前为止,我的解决方案是:

<p:tabView dynamic="true" activeIndex="#{tabViewManagedBean.activeIndex}" >
  <p:ajax event="tabClose" listener="#{tabViewManagedBean.onTabClose}" />
  <p:ajax event="tabChange" listener="#{tabViewManagedBean.onTabChange}"/>

  <c:forEach items="#{tabViewManagedBean.tabs}" var="tab_ext" varStatus="loop_ext" >
   <p:tab title="#{tab_ext.title}" closable="#{tab_ext.closable}" >
    <f:subview id="tab_ext_#{loop_ext.index}" >
      <ui:include src="#{tab_ext.page}" />
    </f:subview>
   </p:tab>
  </c:forEach>

</p:tabView>

这是我的方法:

public void onTabClose(TabCloseEvent event) {
    TabObject t=(TabObject)event.getData();
}

在事件回调中,我无法获取我的 TabObject,而是一个通用的 Tab。我该如何解决这个问题?

共有1个答案

穆仲卿
2023-03-14

您可以确定关闭选项卡的选项卡<code>索引</code>之后,您可以从<code>选项卡

public void onTabClose(TabCloseEvent event) {
    Tab tab = event.getTab();
    UIComponent tabView = tab.getParent();
    int index = tv.getChildren().indexOf(tab);
    TabObject t = tabs.get(index);
    // ...
}
 类似资料:
  • 我有一个左向的Tabview。 我想减少选项卡标题的数量,它们太大了。我该怎么做?

  • 我对tabView有问题。第一个选项卡应始终显示相同的内容(称为搜索模板,用#{not curSearch.isClosable()}标识)。所有其他选项卡都是搜索实例(用#{curSearch.isClosable()}标识) 代码如下: 不幸的是,在第一个选项卡上有一些被称为curSearch对象的方法,这些方法仅在第二个选项卡和后面的选项卡上使用。如果我不使用ui:insert,它不会改变任

  • 问题内容: 嗨,我想遍历一个人对象列表,并在每个人的选项卡中显示数据。我试过了: 这是行不通的。任何帮助表示赞赏 PrimeFaces 3.x的tabView现在支持动态数量的选项卡,并增加了自己的迭代功能: 不幸的是,仍然不可能在同一个tabView中同时包含固定和动态选项卡(正如我想做的那样),甚至无法在不重建视图的情况下动态添加选项卡。幸运的是,当使用SessionScoped或CDI Co

  • 我使用primeface5.2。我想使用一个动态渲染选项卡的手风琴面板。我的xhtml代码: “existe”值存储在布尔值中,我的问题是它似乎从未在渲染属性中使用过。我得到了这个结果。tab rendered我尝试直接编写它,结果是一样的:选项卡总是呈现的。 你能帮帮我吗?

  • 我想创建一个应用程序,使用带有滑动视图的选项卡布局(类似于这样): 问题来了:我在网上到处找一个可以解释如何做这种事情的指南,但我所做的一切都对我不起作用。我在某个地方读到标签布局与Lollipop是不推荐的,所以我试图找到一个替代的方法来做我想做的事情,但什么也没有。我试图创建的每个选项卡布局应用程序在测试时都以崩溃告终,我认为这是由于的某些原因,总是因为选项卡在Lollipop中是不推荐的。我

  • 在p:accordionPanel旁边显示的p:tabView出现问题。选项卡视图的标题与整个accordionPanel的垂直尺寸相同。 最初它是在一个模板客户端中。我将其简化为以下演示: 我用的是PrimeFaces5.0,GlassFish 4.1