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

动态素数面:选项卡视图不更新

郎诚
2023-03-14

我正在使用PrimeFaces3.4(也尝试了3.3)和Mojarra 2.1。7.但是我在更新p:tabView中的动态选项卡时遇到问题。

我有两个按钮,应该添加一个额外的选项卡。第一个按钮位于p:tabView之外。单击此按钮时,将调用backingbean,更新p:tabView,并显示新选项卡。但是,当我单击第二个按钮时,它位于该选项卡视图的选项卡内,会调用支持bean,但不会更新选项卡视图。

这种缺乏更新的情况只发生在动态选项卡中。当我修改给定的示例,使其只有一个选项卡,并显示一个值,该值在单击按钮时会发生变化,此时选项卡视图将由两个按钮更新,并显示新值。因此,这是一个仅发生在动态选项卡中的问题。

这是我的代码。

   <f:view contentType="text/html">
        <h:form>
            <p:commandButton value="press me" action="#{idTestBean.addTab}" update=":ApplicationTab"/>
        </h:form>

        <p:tabView id="ApplicationTab" cache="false" dynamic="false"  var="tab" value="#{idTestBean.tabList}">
            <p:tab title="tab" closable="false" >
                <p:panel>
                    <h:form>
                        <p:commandButton value="press me" action="#{idTestBean.addTab}" update=":ApplicationTab"/>
                    </h:form>

                    #{idTestBean.count}
                </p:panel>

            </p:tab>
        </p:tabView>
    </f:view>

不同的选项卡包含需要单独提交的单独表单。因此,我的方法不止一种形式。

共有2个答案

耿珂
2023-03-14

今天我也做了同样的问题,我有一个动态选项卡,在选项卡里面,有一些面板需要在选项卡变化时更新,所以我做的是,我在事件选项卡变化上添加了p: ajax,在更新属性中,我添加了表单id和tabviewId像这样:

:formID:tabViewID

它终于起作用了。只是想让你知道。

阎晔
2023-03-14

好吧,这必须做到:

<f:view contentType="text/html">
    <h:form>
        <p:commandButton value="press me" action="#{idTestBean.addTab}" update="@form"/>


    <p:tabView id="ApplicationTab" cache="false" dynamic="false"  var="tab" value="#{idTestBean.tabList}">
        <p:tab title="tab" closable="false" >
            <p:panel>

                    <p:commandButton value="press me" action="#{idTestBean.addTab}" update="@form"/>


                #{idTestBean.count}
            </p:panel>

        </p:tab>
    </p:tabView>
    </h:form>
</f:view>
 类似资料:
  • 在我的应用程序中,我想使用一个动态tabView,其中每个选项卡都有一个不同页面的< code>ui:include。我有一个扩展< code>Tab的< code>TabObject列表。< code>TabObject有一个xhtml页面作为字符串属性: 在我的第一次尝试中,我想动态添加选项卡: 但是不适用于使用此技术的变量。到目前为止,我的解决方案是: 这是我的方法: 在事件回调中,我无法获

  • 我有一个左向的Tabview。 我想减少选项卡标题的数量,它们太大了。我该怎么做?

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

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

  • 我试图理解在导航选项卡中使用片段时如何保持片段视图状态。在我的努力中,我遇到了两个我找不到合适解决方案的问题。 我有两个选项卡,Tab1和Tab2。Tab1的布局由碎片A定义,Tab2的布局由碎片B定义。我遵循了这里给出的方法(编辑:自从提出这个问题以来,文档已经发生了变化)。 第一个问题:即使我的视图有ID,当片段被重新附加时(在选项卡切换旋转之后),它们的状态也不会完全恢复。特别是:具有ID的

  • 使用JavaFX2.2,我有一个窗口,它主要由一个有4个选项卡的TabPane组成。用户可以更改任何选项卡中显示的数据,如果他们这样做了,我希望确保他们在保存/取消/更新数据之前不会更改该选项卡。特别是,我想确保他们不会选择不同的标签。如果他们试图退出或执行某个菜单项,我可以捕捉到,但我似乎找不到中断选项卡更改的方法。我可以捕捉到他们点击了一个新的选项卡(onSelectionChanged),并

  • 我有一个有三个标签的标签栏控制器: 仪表板 链接帐户 配置文件 在link account页面上,有一个表单创建一个数据库条目,并在单击以下按钮后导航回dashboard选项卡: 但是,在数据库中创建的条目不会显示在仪表板上的表视图中,因为没有调用“view didload”。 那么,通过在导航回仪表板时调用以下函数来刷新该表的最佳方法是什么? 在仪表板上的viewDidLoad中调用的函数称为“

  • 我正在一个名为Dashboard的类中创建一个标签疼痛,它在标签中包含“填充”面板。我想知道是否有办法创建一个新的仪表板并更改我存储在选项卡中的面板。我不确定这是否是正确的解释方法,但这里有一些代码。 我现在想创建一个新类来创建和实例仪表板,但更改选项卡中显示的面板。我尝试了这样的操作: 我不确定这是否可能,或者是否有另一种方法可以做到这一点。