Events 使用命令组件进行单个选择时亮显行

Events 使用命令组件进行单个选择时亮显行,events,primefaces,Events,Primefaces,根据primefaces文档: 带有命令组件的单个选择 此方法使用命令组件(如commandLink或 命令按钮。如果需要,可以通过作为参数传递,将选定行设置为服务器端实例 正在使用EL 2.2或使用f:setPropertyActionListener 当我按下按钮而不直接选择行时,我需要该行高亮显示 这是我的代码: 我是这样解决的: <p:dataTable rowKey="${xxx.y1}-${xxx.y2}" selection="${managedBean.se

根据primefaces文档:

带有命令组件的单个选择 此方法使用命令组件(如commandLink或 命令按钮。如果需要,可以通过作为参数传递,将选定行设置为服务器端实例 正在使用EL 2.2或使用f:setPropertyActionListener

当我按下按钮而不直接选择行时,我需要该行高亮显示

这是我的代码:


我是这样解决的:

<p:dataTable
    rowKey="${xxx.y1}-${xxx.y2}"
    selection="${managedBean.selectedRow}"
    selectionMode="single"
    value="#{managedBean.listOfBeans}" var="xxx">

    <p:column>
        <p:commandButton action="${managedBean.saveSomethingInDB}" onclick="highlightRow(jQuery(this));"
            update="vvvComponent">
            <f:setPropertyActionListener value="#{currentRow}"
                target="#{managedBean.selectedRow}" />
        </p:commandButton>
    </p:column>
</p:dataTable>

function highlightRow(commandButton) {
    $('.ui-state-highlight').removeClass('ui-state-highlight');
    commandButton.closest('table').closest('tr').addClass('ui-state-highlight');
}

你的代码对我有用

多亏了propertyActionListener,当我按下按钮时,该行会高亮显示

<f:setPropertyActionListener value="#{currentRow}"
            target="#{managedBean.selectedRow}" />
<p:dataTable
    rowKey="${xxx.y1}-${xxx.y2}"
    selection="${managedBean.selectedRow}"
    selectionMode="single"
    value="#{managedBean.listOfBeans}" var="xxx">

    <p:column>
        <p:commandButton action="${managedBean.saveSomethingInDB}" onclick="highlightRow(jQuery(this));"
            update="vvvComponent">
            <f:setPropertyActionListener value="#{currentRow}"
                target="#{managedBean.selectedRow}" />
        </p:commandButton>
    </p:column>
</p:dataTable>

function highlightRow(commandButton) {
    $('.ui-state-highlight').removeClass('ui-state-highlight');
    commandButton.closest('table').closest('tr').addClass('ui-state-highlight');
}
<f:setPropertyActionListener value="#{currentRow}"
            target="#{managedBean.selectedRow}" />