2013-04-25 83 views
0

火災後的另一事件我有選擇和命令的DataTable。問題是如果用戶沒有從數據表中選擇任何項並點擊按鈕,selectedItem對象返回null。我認爲datatable的選擇事件在我的commandbutton的操作方法之後運行。Primefaces如何選擇數據表事件

我想要做的是; 如果用戶不選擇從數據表中的任何項目,並單擊該按鈕,我將創建一個新的SelectedItem對象。但是在按鈕的操作方法運行後,datatable會將其更改爲null。

<p:panel id="panel1"> 
<p:dataTable selection="#{myController.selectedItem}" 
      selectionMode="single".... 
//some other stuff 
</p:panel> 

<p:panel id="panel2"> 
//some other stuff 
<p:commandButton value="Create" action="myController.create".... 
</p:panel> 

我的控制器;

SelectedItem selectedItem = new SelectedItem(); 

public void create(){ 
selectedItem = new SelectedItem(); 
} 
+0

如果用戶沒有選擇,所以該行被選中? – Darka 2013-04-25 12:34:37

+0

@Darka如果用戶沒有選擇,我想創建一個新的SelectedItem對象。我的意思是,如果用戶沒有選擇,我無關datatable.But問題是datatable更改我selectedItem爲null後,我單擊按鈕。 – 2013-04-25 12:38:20

+0

對不起再讀一次你的評論。如果你想創建新的,你需要添加數據到selectedItem = new SelectedItem();像selectedItem.setName('TOM'); – Darka 2013-04-25 12:51:33

回答

0

你可以試試這個:
.xhtml

<p:dataTable var="result" selection="#{myController.selectedItem}" 
     selectionMode="single".... 

<p:commandButton actionListener="#{myController.create()}"> 
    <f:setPropertyActionListener value="#{result}" target="#{myController.selectedItem}" /> 
</p:commandButton>  

的.java

SelectedItem selectedItem = new SelectedItem(); 

public void create(){ 
    selectedItem = new SelectedItem(); 
} 
+0

你的意思是結果? – 2013-04-25 12:34:19

+0

也許,他是指從dataTable的變種:號碼:dataTable中VAR = 「結果」 – Darka 2013-04-25 12:36:52

+0

''var' P的一個:dataTable'屬性,'VAR = 「結果」' – navand 2013-04-25 12:39:10