gpt4 book ai didi

jsf - Primefaces 数据表多选模式 - 延迟加载获取

转载 作者:行者123 更新时间:2023-12-04 22:26:40 24 4
gpt4 key购买 nike

在数据表上,我启用了多选复选框。
并且有提交按钮,在 actionlistener 上,我将重复记录作为选定项目。

例如,第一页有 5 条记录,总记录数为 10,然后第一页记录被复制两次,结果为 10 条记录,应限制为 5 条记录。

以下是代码片段:

<p:dataTable id="sampleDataTable" var="_task" value="#{myBean.lazyModelTasks}"
styleClass="dataTable" paginator="true" paginatorTemplate="{PageLinks}"
paginatorPosition="bottom" rows="5" widgetVar="dataTab"
paginatorAlwaysVisible="true" rowIndexVar="rowIndex"
lazy="true" selection="#{myBean.selectedItems}"
emptyMessage="No Search Results found !">

<p:column selectionMode="multiple" style="width:15px;">
<f:facet name="header">
<h:outputText value="Sno" />
</f:facet>
</p:column>
</p:dataTable>

<p:commandButton id="submit" value="Select" update="#{rerenderid}"
actionListener="#{myBean.addSelectedItems}" oncomplete="#{onlinkclick}">
<f:attribute name="selectedItems" value="#{myBean.selectedItems}"/>
</p:commandButton>

托管 Bean 代码:
 public void addExternalRecipients(ActionEvent event) { 
//THIS GIVES ME 10 RECORDS, THOUGH THERE ARE ONLY 5 RECORDS AT THAT INSTANCE
this.selectedItems = (Address[])
event.getComponent().getAttributes().get("selectedItems");
}

最佳答案

也许不是解决方案,但您不需要使用该事件来获取所选项目,我假设您的托管 bean 中有这个:

private Address[] selectedItems;

您还应该将 selectionMode="multiple"放在数据表上,而不是像您所做的那样放在列上,如下所示:
<p:dataTable id="sampleDataTable" var="_task" value="#{myBean.lazyModelTasks}"
styleClass="dataTable" paginator="true"
paginatorTemplate="{PageLinks}"
paginatorPosition="bottom" rows="5" widgetVar="dataTab"
paginatorAlwaysVisible="true" rowIndexVar="rowIndex"
lazy="true" selection="#{myBean.selectedItems}"
selectionMode="multiple" <!--to make multiple rows selected -->
emptyMessage="No Search Results found !">

然后,无需添加 actionevent,所选实体将自动设置在您的托管 bean 上。当您执行提交(或 ajax 调用)时,您应该获得正确数量的选定实体。

关于jsf - Primefaces 数据表多选模式 - 延迟加载获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12723957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com