上下文
我有一个带有按钮的数据表,可在单击时打开对话框。该对话框在p:inputTextarea
中显示其他数据(xml内容)问题
现在我想使这个p:inputTextarea可编辑,并将更改反映在数据表的对象中。我想在对话框中添加一个命令按钮来保存更改。如何获取对所选对象的引用?
XHTML
<h:form id="alltxform">
<p:dataTable id="tablealltx" var="transaction" value="#{transactionListModel.txList}">
<p:column>
<p:commandButton update=":alltxform:xmlDetail" oncomplete="PF('dialog').show()">
<f:setPropertyActionListener value="#{transaction}"
target="#{transactionListModel.selectedTx}" />
</p:commandButton>
</p:column>
</p:dataTable>
<p:dialog header="Detail" widgetVar="dialog">
<p:outputPanel id="xmlDetail">
<p:inputTextarea readonly="false" id="xmlviewer"
value="#{transactionListModel.selectedTx.xml}" />
</p:outputPanel>
</p:dialog>
</h:form>
模型
package model;
@Named
@SessionScoped
public class TransactionListModel implements Serializable {
private static final long serialVersionUID = 1L;
private List<TransactionVO> txList;
private TransactionVO selectedTx;
public TransactionVO getSelectedTx() {
return selectedTx;
}
public void setSelectedTx(TransactionVO selectedTx) {
this.selectedTx = selectedTx;
}
@PostConstruct
public void init() {
txList = new ArrayList<TransactionVO>();
}
public List<TransactionVO> getTxList() {
return txList;
}
public void clearList(){
txList = new ArrayList<TransactionVO>();
}
}
按钮
我想将此按钮添加到对话框中。
<p:commandButton value="OK" onclick="PF('dialog').hide();" actionListener=""/>
我读过有关cellEdit事件的内容,但这并不是我所需要的。我需要在对话框中引用我的事务对象以保存更改。
答案 0 :(得分:0)
你的意思是对话框看起来像 -
<p:dialog header="Detail" widgetVar="dialog">
<p:outputPanel id="xmlDetail">
<p:inputTextarea readonly="false" id="xmlviewer"
value="#{transactionListModel.selectedTx.xml}" />
<p:commandButton value="OK" onclick="PF('dialog').hide();" actionListener=""/>
</p:outputPanel>
</p:dialog>
在刷新表之前,操作会刷新模型吗?
您想要访问TransactionListModel.selectedTx?
如果它在模型中并且可以从控制器访问,那么只需 -
actionListener="#{yourController.yourAction(transactionListModel.selectedTx)}"
在更新之前更新yourAction方法中的基础数据结构:tablealltx:tablealltx