自动将数据表保存到辅助bean

时间:2017-09-12 20:44:35

标签: jsf primefaces

我有一个包含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

}

任何帮助都将非常感激。

1 个答案:

答案 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>