我正在使用Primefaces 3.2的JSF 2.1的Mojarra实现。
我的问题大致如下:
<p:dialog id="someDialog">
..
<h:form id="dialogForm">
<p:commandLink action=".."update=":someForm:someUIRepeat:someDataTable:someInputTextArea"/>
</h:form>
</p:dialog>
<h:form id="someForm">
<ui:repeat id="someUIRepeat" value=".." ..>
<p:dataTable id="someDataTable" value=.. >
<p:column>
<p:inputTextarea id="someInputTextarea" value=../>
<p:column>
.. here go other columns
<ui:repeat>
</h:form>
问题是,当我在对话框中单击commandLink时,inputTextarea不会更新。但是,如果我在commandLink的更新中写这个: 更新= “:someForm:someUIRepeat:someDataTable,:someForm:someUIRepeat:someDataTable:someInputTextArea”
然后整个dataTable也会更新,inputTextarea也会更新,但是在我点击对话框中的commandLink后,其他列中的字段中的值会被删除。
我把dataTable放在ui:repeat中的原因是我需要将dataTable与一个集合的每一行绑定,我认为它与我的问题无关。
我有什么想法可以解决这个问题吗?
提前致谢,
努尔然
答案 0 :(得分:1)
开始试试这个
在对话框中的onclick="jQuery('#someForm:someButton').click();"
添加了<p:commandLink
(检查隐藏按钮的确切ID)
将update
设置为update=":someForm:someUIRepeat:someDataTable"
并添加
<h:commandButton id="someButton" style="display:none">
<f:ajax execute="@form"></f:ajax>
</h:commandButton>
到<h:form id="someForm">
解释:隐藏按钮的目的是将表单执行(发送其值)到服务器,这样当你调用update
时,字段就不会被删除......