Jsf 当SelectOne菜单更改时选择行

Jsf 当SelectOne菜单更改时选择行,jsf,primefaces,Jsf,Primefaces,当我更改selectOneMenu的值时,我需要设置backingbean中的行,并更新同一行中的按钮 <p:dataTable id="dataTableId" rowIndexVar="rowIndex" rowKey="#{record.id}" rows="10" selection="#{bean.selectedRecord}" selectionMode="single" value="#{bean.allRecords}" var="record"

当我更改
selectOneMenu
的值时,我需要设置backingbean中的行,并更新同一行中的按钮

<p:dataTable
    id="dataTableId" rowIndexVar="rowIndex" rowKey="#{record.id}"
    rows="10" selection="#{bean.selectedRecord}" selectionMode="single"
    value="#{bean.allRecords}" var="record" widgetVar="dataTableWV">

    <p:column>
        <p:selectOneMenu converter="omnifaces.SelectItemsConverter"
            id="selectOnMenuId" value="#{bean.recordDTO}">
            <f:selectItems
                itemLabel="#{status.name}" itemValue="#{status.id}" value="#{bean.statusList}" var="status" />
            <p:ajax event="change" update="saveButtonId">
                <f:setPropertyActionListener target="#{bean.selectedRecord}" value="#{record}" />
            </p:ajax>
        </p:selectOneMenu>
    </p:column>
    <p:column>
        <p:commandButton action="#{bean.someMethod}" icon="ui-icon-disk" id="saveButtonId" update="someId"/>
    </p:column>
</p:dataTable>

编辑@Tiny建议:

<p:dataTable
    id="dataTableId" rowIndexVar="rowIndex" rowKey="#{record.id}"
    rows="10" selection="#{bean.selectedRecord}" selectionMode="single"
    value="#{bean.allRecords}" var="record" widgetVar="dataTableWV">

    <p:ajax event="rowSelect"
        listener="#{bean.anotherMethod(record)}"
        update="somesIds" />

    <p:column>
        <p:selectOneMenu converter="omnifaces.SelectItemsConverter"
            id="selectOnMenuId" value="#{bean.recordDTO}">
            <f:selectItems
                itemLabel="#{status.name}" itemValue="#{status.id}" value="#{bean.statusList}" var="status" />
            <p:ajax event="change"
                listener="#{bean.anotherMethod(record)}"
                update="saveButtonId" />
        </p:selectOneMenu>
    </p:column>
    <p:column>
        <p:commandButton action="#{bean.someMethod}" icon="ui-icon-disk" id="saveButtonId" update="someId"/>
    </p:column>
</p:dataTable>


请描述罪犯(如有)。我会避免以这种方式使用
。我宁愿将
与参数化方法(EL 2.2)结合使用。是的……还有?这不行吗?但是会发生什么呢?你可以(应该)自己做很多调试。监视ajax调用检查范围等…@Tiny我在问题中做了一些编辑。在rowSelect事件中,记录为空,但在SELECTONE菜单中,记录有效great@Kukeltje我没有收到任何ajax错误。似乎setPropertyActionListener不起作用,在故事的结尾你得到了什么?我希望,最后一个附加的代码片段现在应该可以正常工作了。