gpt4 book ai didi

jsf-2 - 获取所选素数数据表行的行号

转载 作者:行者123 更新时间:2023-12-04 05:03:48 24 4
gpt4 key购买 nike

我有一个primefaces数据表,需要在JSF页面中显示(总行数)(选定的行数)。我可以使用rowIndexVar属性获得显示在某一列中的行号,但我不知道要显示什么在行选择输入文本中分别选择相同的数字。

我需要在JSF页面或托管bean中执行什么操作才能获取选定的行号。

请在这方面帮助我。

以下是我的JSF页面

<p:dataTable id="workSpaceList" var="data"
value="#{workSpaceBean.lpInfoList}" widgetVar="multiSelection"
selection="#{workSpaceBean.selectedRows}" resizableColumns="true"
liveScroll="true" scrollRows="55" scrollWidth="85%"
scrollHeight="81%" styleClass="datatable"
scrollable="true" rowIndexVar="rowIndex"
filteredValue="#{workSpaceBean.filteredWorkSpaceItems}">

<p:column selectionMode="multiple" style="width:3%" />
<p:column headerText="#" style="width:3%">
#{rowIndex+1}
</p:column>
<p:column headerText="Insured" filterBy="#{data.insuredName}"
sortBy="#{data.insuredName}" style="width:24%">
<h:outputText value="#{data.insuredName}" />
<!-- style="width:250px" -->
</p:column>

<p:column headerText="City" filterBy="#{data.custAddress_City}"
sortBy="#{data.custAddress_City}" style="width:12%">
<h:outputText value="#{data.custAddress_City}" />
</p:column>
.
.
.
.

</p:dataTable>

最佳答案

我相信没有直接的方法可以做到这一点。尽管使用两个ajax请求并不是一件很漂亮的事情,但是至少可以使用纯PrimeFaces达到预期的结果。如果您用PrimeFaces扩展 p:ajax 替换pe:javascript而不将其往返于服务器,则可以将此调用减少为一个调用

数据表呈现的每一行(tr)的rowKey属性都称为 data-rk ,而rowIndexVar值具有另一个属性 data-ri

您可以通过 dtWidgetVar.selection (dtWidgetVar是数据表中widgetVar的名称)来获取 data-rk 属性。

您现在可以使用remoteCommand将indexRow发送到您的模型

这是我用来测试的代码:

View

<p:remoteCommand name="displayIndex" process="@this" update="index" actionListener="#{viewMBean.displayRowIndex}"/>

<p:dataTable id="dt" var="data"
value="#{viewMBean.dataModel}"
selection="#{viewMBean.selectedRow}"
selectionMode="single"
widgetVar="dtVar"
rowIndexVar="index">
<p:ajax event="rowSelect"
oncomplete="displayIndex([{name:'index', value:jQuery('tr[data-rk=' + dtVar.selection + ']').attr('data-ri')}])" process="@this" />
<p:column headerText="#">
#{index + 1}
</p:column>
<p:column headerText="Dados">
#{data.name}
</p:column>
</p:dataTable>
<br />
Row Index: <p:inputText id="index" value="#{viewMBean.index}" />

托管 bean
public void displayRowIndex() {
FacesContext context = FacesContext.getCurrentInstance();
Map map = context.getExternalContext().getRequestParameterMap();
String pIndex = (String) map.get("index");
index = Integer.parseInt(pIndex);
}

如果使用复选框选择,则可以按以下方式检索选定的索引:
function beforeDisplayingIndexes(){
var indexes = "";
jQuery("tbody .ui-chkbox-box").each(function(){
if (jQuery(this).hasClass("ui-state-active")){
indexes = indexes + (indexes === "" ? "" : ",") + jQuery(this).closest("tr").attr("data-ri");
}
});
//for debuging only
console.log(indexes);
displayIndex([{name:'index', value:indexes}])
}

现在,您应该能够对代码进行适当的修改以利用它。

关于jsf-2 - 获取所选素数数据表行的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20946557/

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