命令按钮,我有这个简单的页面:Primefaces数据表,延迟加载和每
<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>
和内部DataTable
的CommandButton
不工作,只是刷新页面。 但外面正在工作。
如果我改变value
和lazy
这样:
<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>
的CommanButton
内DataTable
的作品就像一个魅力。
有人知道为什么吗?
它是一个错误?
我是在
- Glassfish的3.1.2
- JSF 2.1.11(钻嘴鱼科)
- PrimeFaces 3.4快照
这是不完全正确会话通过使用'@ ViewScoped',但您也可以使用'@ RequestScoped'。重点在于,当在'APPLY_REQUEST_VALUES'中计算'isRowAvailable()'方法并且'pageSize'字段必须保存大于零的值时,它必须返回true。我通过在重载两个方法的同时扩展'LazyDataModel'来实现这一点:'isRowAvailable()',在这里我调用'load(...)'并将结果应用于'setWrappedData()',第二个方法'setRowIndex(int rowIndex) '我把'pageSize'设置为我的默认值 – uvo 2018-01-16 10:14:28