我有一个包含3行的数据表。每行都是文本区域。我想自动保存其中的内容。我尝试使用primefaces民意调查。民意调查仅在被触发时触发
process="@form"
然后textarea中的内容不会传递给辅助bean。如果我更改process=":tabView:tab2form:table1"
,则不会触发民意调查。这是我的代码
<p:dataTable id="table1" var="reportCommentary" value="#{managedBean.reportCommentaries}" >
<p:column headerText="Report Commentary Edit">
<h:outputText value="Commentary:" />
<p:inputTextarea id ="commentaryEditor"
maxlength="#{managedBean.maxCommentaries}"
value="#{reportCommentary}"
rows="20"
cols="100"
widgetVar="commentaryEditor"
autoResize="false"
counter="counter"/>
<h:outputText id="counter"/>
</p:column>
</p:dataTable>
<p:poll interval="30"
listener="#{managedBean.onCellEdit}"
partialSubmit="true"
process=":tabView:tab2form:table1"/>
我的支持bean(Session Scoped):
public void onCellEdit(){
// it never comes here
}
任何帮助都将非常感激。
答案 0 :(得分:0)
在DataTable中尝试此基本单元格编辑,然后删除<p:poll>
。
在editable="true"
editMode="cell"
和<p:dataTable>
Java代码:
public void onCellEdit(CellEditEvent event) {
//your code
}
.xhtml代码:
<p:dataTable id="table1" var="reportCommentary"
value="#{managedBean.reportCommentaries}"editable="true" editMode="cell">
<p:ajax event="cellEdit" listener="#{managedBean.onCellEdit}" />
<p:column headerText="Report Commentary Edit">
<h:outputText value="Commentary:" />
<p:cellEditor>
<f:facet name="output">
<p:inputTextarea id ="commentaryEditor"
maxlength="#{managedBean.maxCommentaries}"
value="#{reportCommentary}"
rows="20"
cols="100"
widgetVar="commentaryEditor"
autoResize="false"
counter="counter"/>
</f:facet>
<f:facet name="input">
<p:inputTextarea id ="commentaryEditor"
maxlength="#{managedBean.maxCommentaries}"
value="#{reportCommentary}"
rows="20"
cols="100"
widgetVar="commentaryEditor"
autoResize="false"
counter="counter"/>
</f:facet>
</p:cellEditor>
<h:outputText id="counter"/>
</p:column>
</p:dataTable>