Primefaces dataTable有一个名为expandedRow的功能,当设置为true时会扩展所有行。但是我想在dataTable加载之前只展开一个特定的行。
<p:dataTable id="table" value="#{dataTable.cars}" var="car" expandedRow="true"
paginator="true" rows="5">
<p:column style="width:2%">
<p:rowToggler />
</p:column>
<p:column id="model" headerText="Model">
<h:outputText value="#{car.model}" />
</p:column>
<p:column id="year" headerText="Year">
<h:outputText value="#{car.year}" />
</p:column>
<p:rowExpansion >
<h:outputText value="Manufacturer : " />
<h:outputText value="#{car.manufacturer}" />
</p:rowExpansion>
</p:dataTable>
答案 0 :(得分:4)
您可以使用expandedRow,其中的条件分别针对每一行进行检查。
例如:
expandedRow="#{car.expanded}"
答案 1 :(得分:3)
PrimeFaces没有这样的功能,但您可以通过javascript执行此操作。首先调查生成的html代码,然后你会找到具有.ui-row-toggler
类的div元素。此元素触发扩展内容。你需要做什么找到这个元素并手动触发。
<script type="text/javascript">
$(document).ready(function () {
$('.ui-datatable-data').find('.ui-row-toggler').eq(3).trigger('click');
});
</script>
在定义p:dataTable
之后输入高级代码,或者只通过单独的js文件包含js代码。请注意,.ui-datatable-data
是指您的p:dataTable
内容。