0

我有一个带有选择和命令按钮的数据表。问题是如果用户没有从数据表中选择任何项目并单击按钮,则 selectedItem 对象返回 null。我认为数据表的选择事件在我的命令按钮的操作方法之后运行。

我想做的是;如果用户没有从数据表中选择任何项目并单击按钮,我将创建一个新的 SelectedItem 对象。但是在按钮的操作方法运行后,数据表将其更改为空。

<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();
}
4

1 回答 1

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();
}
于 2013-04-25T12:27:25.867 回答