预扩展primefaces数据表中的特定行

时间:2013-11-07 10:35:03

标签: jquery jsf primefaces

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>

2 个答案:

答案 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内容。