使用f:属性将p:commandButton添加到primefaces标头

时间:2013-07-03 06:37:49

标签: jsf primefaces

我有一个包含p:datatable和dynamic列的页面。 我正在尝试使用f:属性作为命令按钮单击的值向标题添加命令按钮。 问题是按下标题按钮时我根本没有到达服务器。 这是一个代码snipet

<p:dataTable >
    <p:columns value="#{controller.columnsTitles}" var="column" columnIndexVar="colIndex">
        <f:facet name="header">
            <p:panel >
                <table>
                    <tr>
                        <th>
                            <p:panel>
                                #{column.label}
                            </p:panel>
                        </th>
                    </tr>
                    <tr>
                    <th>
                        <h:panelGroup >
                            <p:commandButton value="Add" actionListener="#{controller.doStaff}">
                                <f:setPropertyActionListener value="#{column.value}" target=#{controller.selectedToEdit}" />
                            </p:commandButton>
                        </h:panelGroup>
                    </th>
                </tr>
            </table>
        </p:panel>

    </f:facet>
<p:column>
    ......
</p:column>
</p:columns>
</p:dataTable>

[编辑] 我找到了解决这个问题的方法。 在命令按钮中,我添加了一个onClick事件,该参数将参数selectedToEdit传递给javascript函数,该函数又调用p:remoteCommand将参数传递给服务器。我还将commandButton的actionListener更改为action,现在它正在运行。

现在代码如下:

<script>
function jsFunc(param)
{
    command([{name:'selectedToEdit',value:selectedToEdit}]);
}
</script>
.....
<p:remoteCommand name="command" actionListener="#{controller.selectedToEdit}" />
<p:commandButton value="Add" action="#{controller.doStaff}" onclick="jsFunc('#{column.value}')" />

0 个答案:

没有答案