单选按钮行选择事件在 p:数据表中


基于

RadioButton/Checkbox的行选择是一个常见的用例,DataTable为此提供了具有列选择模式功能的解决方案。

<p:dataTable var="car" value="#{tableBean.cars}" paginator="true" rows="10"
                 selection="#{tableBean.selectedCar}">`
     <f:facet name="header">
            RadioButton Based Selection
        </f:facet>
        <p:column selectionMode="single" />
        <p:column headerText="Model">
            <h:outputText value="#{car.model}" />
        </p:column>
        <p:column headerText="Year">
            <h:outputText value="#{car.year}" />
        </p:column>
        <p:column headerText="Manufacturer">
            <h:outputText value="#{car.manufacturer}" />
        </p:column>

        <f:facet name="footer">
            <p:commandButton value="View" image="ui-icon ui-icon-search"
                             update="displaySingle" oncomplete="singleCarDialog.show()"/>
        </f:facet>
    </p:dataTable>

想知道我是否选择第一列的单选按钮,我如何为此获取事件。

  • 因为我想在选择第一列或最后一列的单选按钮时禁用按钮。
  • 而且我还想在选择列时获取列的索引,现在我用 selectedCar 比较列表,并获取列的索引。它看起来很丑。有人可以帮助我吗?

这是仅适用于 PrimeFaces <= 2.x 的解决方案。

在Primeface的展示柜中有一个很好的例子。有一个属性rowSelectListener可以像这样使用:

rowSelectListener="#{tableBean.onRowSelect}"

在背豆中:

public void onRowSelect(SelectEvent event) {  
        FacesMessage msg = new FacesMessage("Car Selected", 
                           ((Car) event.getObject()).getModel());  
        FacesContext.getCurrentInstance().addMessage(null, msg);  
}  

相关内容

  • 没有找到相关文章

最新更新