0

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>
4

2 回答 2

5

您可以将expandedRow 与其中的条件一起使用,该条件将分别检查每一行。

例如:

expandedRow="#{car.expanded}"
于 2014-10-08T08:28:31.780 回答
3

PrimeFaces 没有这样的功能,但您可以通过 javascript 做到这一点。首先调查生成的 html 代码,您将看到 div 元素的类为.ui-row-toggler. 此元素正在触发扩展内容。您需要做的是找到这个元素并手动触发。

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

于 2013-11-07T13:21:55.027 回答