2013-03-26 48 views
0

我有這個數據表與a4j:支持標籤,以便當有人點擊一行時,我想要顯示或隱藏某些按鈕基於所選行的狀態。Richfaces 3.3 extendedDataTable onRowClick設置數據從上一行點擊

問題是,我的後臺bean中的數據總是一鍵後退。

<rich:extendedDataTable 
    id="formSummaryTableId" 
    var="dataSummary" 
    value="#{FormSearch.summaries}" 
    binding="#{FormBacking.table}" 
    selection="#{FormSearch.selection}" 
    rowKeyVar="rkv" 
    frozenColCount="0" 
    sortMode="single" height="500px" width="795px" 
    cellpadding="0" cellspacing="0" border="0" rowClasses="even, odd" 
    selectedClass="itemSelected"> 

    <a4j:support event="onRowClick" actionListener="#{FormBacking.onClickForm}" 
     reRender="DesignerForm:formEditToolbar" /> 
.... 

FormBacking.onClickForm

public void onClickForm(ActionEvent e) 
{ 
    Iterator<Object> selectionKeys = getFormSearch().getSelection().getKeys(); 
    LOG.info("selectionKeys = "+selectionKeys.hasNext()); 
    if (selectionKeys.hasNext()) 
    { 
     LOG.info("selectionKeys.next()"); 
     Integer lookupKey = (Integer) selectionKeys.next(); 
     LOG.info("lookupKey = "+lookupKey); 
    } else { 
     LOG.info("THERE is no keys"); 
    } 
} 

編輯

我已經想通了,由於某些原因,當我點擊一排,它沒有得到正確設置。就好像它比我的點擊差一步。例如,如果我單擊我的數據表第1行,我的方法進入「沒有鍵」,但如果我現在單擊第2行,我的方法有我單擊的第一行的鍵。

爲什麼1點擊後?

+0

你是什麼意思,它是之前重新渲染?你能澄清你如何檢查? – Andrey 2013-03-27 06:46:02

+0

我指的是a4j:support標籤的reRender =「DesignerForm:formEditToolbar」。 – Catfish 2013-03-27 13:24:01

+0

我已更新我的問題。 – Catfish 2013-03-27 14:39:29

回答

1

使用onselectionchange事件:

<a4j:support event="onselectionchange" ... 

我想與onRowClick問題是選擇變化發生之前,它被炒魷魚,所以它提交先前的選擇值。

+0

真棒作品像一個魅力。不知道該事件類型。 – Catfish 2013-03-27 16:08:12

+0

@Catfish太棒了。支持的全套屬性/事件例如:http://livedemo.exadel.com/richfaces-demo/richfaces/extendedDataTable.jsf?tab=info – Andrey 2013-03-27 17:54:09

相關問題