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

Ajax按钮并在Primefaces DataScroller中呈现?

云瑞
2023-03-14

我有一个Primefaces[ ][2],用于显示延迟加载项的列表。我的JSF代码如下所示:

<p:dataScroller id="scroller" value="#{myAction.myDataModel}" var="item" lazy="true" chunkSize="10">
  <section>
    <h3>Here is my item : <h:outputText value="#{item.name}" /></h3>
  </section>
</p:dataScroller>

这段代码没有问题。我的支持代码能够根据需要从数据库中延迟加载项,而不是一次将它们全部拉出并在客户端分页。但是,现在我想在datascroller中添加 并执行Ajax提交,但只重新呈现单击的项。我的支持操作将更新我的项目的状态,并且我将根据这个状态显示一个不同的消息。我想我可以做这样的事情:

<p:dataScroller id="scroller" value="#{myAction.myDataModel}" var="item" lazy="true" chunkSize="10">
  <section>
    <h:panelGroup id="#{item.name}" layout="block">
        <h3>Here is my item : <h:outputText value="#{item.name}" /></h3>
        <h:commandLink action="#{myAction.foo()}" value="Click here">
           <f:ajax render="#{item.name}" />
        </h:commandLink
    </h:panelGroup>
  </section>
</p:dataScroller>

...但是,我现在了解到在JSF中不能有动态ID,因此 的呈现失败。我可以将 render属性值设置为我的JSF表单,但这将从头重新呈现所有内容,这不是所希望的行为。

如果我的 中显示了100个项目,并且我单击了项目30上的链接,有没有办法只呈现该项目?有更好的方法来处理这个用例吗?还是我完全卡住了?

共有1个答案

冯哲彦
2023-03-14

您不需要动态ID。您可以使用PrimeFaces选择器,这是专门为这种情况设计的。因此您可以引用家长、按类列出的项目或其他内容。完整的jquery选择器api可供您使用,非常灵活!只是不确定它是否与h:commandButton和f:ajax一起工作(可能h:commandButton和p:ajax一起工作)。但可以肯定的是

<p:commandButton update="@(:parent)" value="update parent" />
 类似资料:
  • 我使用bootstrap模式获得了一个register表单,它将调用ajax post函数。 但是,它似乎并不执行我的$.post。另外,如何将php函数的返回值使用到ajax数据中?那么,如果我的createAccount返回true或其他值,我的ajax如何捕获它呢? 我的阿贾克斯。 我的CreateAccount.php 我的函数.php

  • 我正在使用贝宝快捷结账按钮。问题是,如果用户更改付款金额,paypal按钮将再次呈现。当我点击paypal按钮时,有没有办法渲染该按钮?我与贝宝结帐工作。js https://developer.paypal.com/docs/archive/checkout/integrate/# 更新:在web组件中工作,所以所有代码都在renderedcall back()中

  • 我已经声明了一个用于iOS的自定义渲染器(和Android-工作正常)。 自定义呈现器主要设置背景色和文本颜色。 设置文本颜色对启用和禁用状态都很好,但我在不同状态下设置按钮的背景颜色时遇到了麻烦。 我无法找到任何关于Xamarin自定义呈现器的文档,而且Xamarin的一个已知错误是,我无法在Visual Studio中获得任何适用于iOS类的智能感知,到目前为止,我已经使用了我能找到的关于该主

  • 问题内容: 我试图在单击按钮后禁用它。我努力了: 但该按钮并未被禁用。当我删除 按钮被禁用。 虽然这没有按预期工作,但我认为代码顺序是正确的。任何帮助将不胜感激。 问题答案: 放入成功函数: 这将确保 在 加载数据 后将 disable设置为false 。当前,您在同一单击功能(即同时)中禁用和启用按钮。

  • 我有两个模块 App.jsx 和contract.jsx 我正在将(promise)函数从导出到。由于我无法从promise中返回值,因此我需要将该值分配给promise中的组件的状态(检查)。为此,我需要将函数中的“console.log(result)”替换为“this.setState({'accounts':result})”。但是组件和在不同的模块中,应该是独立的。我无法在我的功能中设置

  • 问题内容: 我有一个Ruby onRails项目,其中包含一个模型和一个模型。我想让用户“喜欢”内容,而我使用acts_as_votable gem 做到了这一点。 目前,喜欢的系统正在运行,但是每次按下like按钮(link_to)时,我都会刷新页面。 我想使用Ajax进行此操作,以便更新按钮和点赞计数器,而无需刷新页面。 在我看来,这就是我所拥有的: 该控制器这样做是为了喜欢/不喜欢: 在我的