选择在extendedDataTable,RichFaces 4 + JSF 2.0中不起作用

时间:2011-11-09 11:21:44

标签: java jsf jsf-2 richfaces

我有一个使用RichFaces 4.0.0.Final和JSF 2.0的应用程序。当我尝试在extendedDataTable中使用选择时,它不起作用。

<rich:extendedDataTable
                    id="shipmentList" value="#{shipmentListBean.shipmentList}" var="shipment"
                    rowClasses="#{shipment.paymentDate == null ? 'unpaidShipment' : null}"
                    selectionMode="single" noDataLabel="#{msgs.emptyList}"                        
                    selection="#{shipmentListBean.selection}"
                    style="width: 1200px; font-size: 10px; ">

ShipmentListBean:

@ManagedBean
@ApplicationScoped
public class ShipmentListBean implements Serializable {

    private Collection<Object> selection = null;

    public ShipmentListBean() {
    }

    public List<ShipmentValueObject> getShipmentList() {
        ....
    }


    public Collection<Object> getSelection() {
        return selection;
    }

    public void setSelection(Collection<Object> selection) {
        this.selection = selection;
    }
}

为什么在方法中选择selSelection(集合选择)空集合时,我选择表中的行?

1 个答案:

答案 0 :(得分:1)

您可以像这样使用选择

in ShipmentListBean 



  private SimpleSelection selection = new SimpleSelection();

    // now time to get a selected Row id from the extendedDataTable. 
    // this method you can call on any button after selecting the row from the extendedDataTable
    public void selectedRecord(){
            try{
                Iterator<Object> iterator = getSelection().getKeys();

                while(iterator.hasNext()){
                    // Here you will get all the selected roes id from the Data table
                    Object obj = iterator.next();

                    info("GET SELECTED ROWS ID ::::: " + obj.toString());

                }
            }catch(Exception e){
                e.printStackTrace();
            }   
        }