为了账号安全,请及时绑定邮箱和手机立即绑定

JSF,Primefaces LazyDataModel - 更新行而不调用加载方法

JSF,Primefaces LazyDataModel - 更新行而不调用加载方法

ibeautiful 2022-06-15 10:39:53
我有一个带有 2 列的简单惰性数据模型。第二列只有默认禁用的复选框(无法单击它们)。在行选择上,我只想启用复选框(checkbox.disabled = false)而不调用load方法 - 因为我的数据没有更改,因此无需请求数据库。问题是,当我更新我的 dataTable 以将 checkbox.disabled 更改为false,然后调用 RENDER_PHASE 并调用load方法,另一方面,如果我不更新我的数据表,则该复选框始终被禁用。我怎样才能让它一起工作?更新:<h:form id="form-id">            <p:dataTable var="element"                         id="data-table-id"                         value="#{view.elements}"                         lazy="true"                         paginator="true"                         paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"                         selectionMode="single"                         rows="5"                         rowsPerPageTemplate="5,10,15,30"                         selection="#{view.selectedElement}">                <p:ajax event="rowSelect"                        listener="#{view.someMethod()}"                        update="checkbox"/>                <p:column headerText="Element"                          width="300">                    <h:outputText value="#{element.name}"/>                </p:column>                <p:column headerText="Active"                          width="300">                    <p:selectBooleanCheckbox id="checkbox"                            disabled="#{view.selectedElement.id ne element.id}"                            value="#{element.active}"/>                </p:column>            </p:dataTable>        </h:form>当我把update="form-id"然后活动复选框启用 - 但正如我所说,该load方法被调用,这是不受欢迎的行为
查看完整描述

1 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

这就是 JSF 的工作方式,如果您说 update="form-id" JSF 将重新呈现整个表单,包括重建您的数据表,从而调用您的加载方法。


听起来您想要的是更新单行检查OmniFaces Ajax.updateRow方法。


所以例如JSF...


<p:dataTable binding="#{myDataTable}"


<p:commandButton value="Update" action="#{ajaxBean.updateRow(myDataTable, 0)}" />

爪哇:


public void updateRow(UIData table, int index) {

   Ajax.updateRow(table, index);

}


查看完整回答
反对 回复 2022-06-15
  • 1 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信