jsf-2 - Primefaces DataTable、延迟加载和每行命令按钮

标签 jsf-2 primefaces lazy-loading datatables

我有这个简单的页面:

<h:form id="form">

    <p:dataTable value="#{testBean.unitTypeModel}" var="elem" lazy="true" rows="10">
        <p:column headerText="class">#{elem.class.simpleName}</p:column>
        <p:column headerText="code">#{elem.code}</p:column>
        <p:column headerText="description">#{elem.description}</p:column>
        <p:column headerText="action">
            <p:commandButton action="test2" icon="ui-icon ui-icon-wrench" value="edit">
                <f:setPropertyActionListener target="#{testBean.selection}" value="#{elem}"/>
            </p:commandButton>
        </p:column>
    </p:dataTable>

    <p:commandButton action="test2" icon="ui-icon ui-icon-wrench"/>

</h:form>

CommandButtonDataTable不工作,只是刷新页面。
但外面的那个正在工作。

如果我改变 valuelazy这边走:
<h:form id="form">

    <p:dataTable value="#{testBean.unitTypeModel.load(0, 10, null, null, null)}" var="elem" lazy="false" rows="10">
        <p:column headerText="class">#{elem.class.simpleName}</p:column>
        <p:column headerText="code">#{elem.code}</p:column>
        <p:column headerText="description">#{elem.description}</p:column>
        <p:column headerText="action">
            <p:commandButton action="test2" icon="ui-icon ui-icon-wrench" value="edit">
                <f:setPropertyActionListener target="#{testBean.selection}" value="#{elem}"/>
            </p:commandButton>
        </p:column>
    </p:dataTable>

    <p:commandButton action="test2" icon="ui-icon ui-icon-wrench"/>

</h:form>
CommanButtonDataTable奇迹般有效。

有人知道为什么吗?

这是一个错误吗?

我上线了
  • 玻璃鱼 3.1.2
  • JSF 2.1.11 (Mojarra)
  • PrimeFaces 3.4-快照
  • 最佳答案

    发现惰性数据模型必须是回发请求中的相同实例,即使具有相同值的新实例也不起作用。所以它必须至少由 @ViewScoped 提供 bean 角,扁 bean 。

    关于jsf-2 - Primefaces DataTable、延迟加载和每行命令按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11918834/

    相关文章:

    java - primefaces 时间表 : edit event details on move/resize event listeners

    jsf-2 - 带有素面的动态面包屑

    file-upload - 更改<p :fileUpload mode ="simple">的默认按钮标签

    javascript - 使用 primefaces 访问 Jquery UI

    angular - 使用动态导入延迟加载组件时编译器发出警告

    hibernate - (moxy) jaxb 编码(marshal)处理和 hibernate 代理对象

    java - 带有 ajax 更新的 JSF selectOneButton - setter 调用 2 次

    jsf - servlet Faces Servlet 的 Servlet.service() 抛出异常 : java. lang.NullPointerException JSF

    angular - 将输入数据传递到延迟加载的 Angular 模块中

    jsf-2 - 带有 filterFunction 的 Primefaces 数据表日期范围过滤器