我正在尝试生成一个可编辑的数据表,它动态依赖于先前执行的SQL-Query的结果集。 根据哪些列具有常量值,我试图不渲染它们。代码的那部分工作正常,一切都显示为我希望它。 我的问题在于cellEditor。我按如下方式生成我的数据:
<p:dataTable ajax="true" var="mBT" value="#{stammdaten.bbvList}" id="meldeBearbeitungsTable" editable="true" editMode="cell" scrollable="true" scrollHeight="400" style="width:600px">
<p:ajax event="cellEdit" listener="#{stammdaten.onCellEdit}" update=":Mb:message"/>
<c:forEach var="column" items="#{stammdaten.columns}">
<p:column headerText="#{column.header}">
<f:attribute name="myCol" value="#{column}" />
<span>
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{mBT[column.property]}"></h:outputText>
</f:facet>
<f:facet name="input">
<p:inputText value="#{mBT[column.property]}">
<p:keyFilter regEx="/[0-9]/i"/>
</p:inputText>
</f:facet>
</p:cellEditor>
</span>
</p:column>
</c:forEach>
</p:dataTable>
bbvList是具有不同值的bean列表。
columns是一个bean列表,用于标识与各个变量相对应的标题文本。
所以现在问题本身: 这是我点击它时cellEditor的样子: Issue-Picture
因此,在该示例中,我尝试编辑其中值为“8”的字段。 onCellEdit被触发(System.out.println正在控制台上打印)但我实际上无法更改相应字段中的值。
对于dataTable的forEach初始化,是否有cellEdit问题?如果有,是否有办法解决它?不管我做错了什么?
由于只有代码的html端的特定组件不能正常工作,所以我现在不会发布不必要的java-Code。如果需要,我也会添加它。
希望有人可以提供帮助:)
答案 0 :(得分:0)
结果显示问题原因的属性和/或范围。简单地删除它们解决了cellEdit的问题。 以下工作正常:
<p:dataTable ajax="true" var="mBT" value="#{stammdaten.bbvList}" id="meldeBearbeitungsTable" editable="true" editMode="cell" scrollable="true" scrollHeight="400" style="width:600px">
<p:ajax event="cellEdit" listener="#{stammdaten.onCellEdit}" update=":Mb:message"/>
<c:forEach var="column" items="#{stammdaten.columns}">
<p:column headerText="#{column.header}">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{mBT[column.property]}"></h:outputText>
</f:facet>
<f:facet name="input">
<p:inputText value="#{mBT[column.property]}">
<p:keyFilter regEx="/[0-9]/i"/>
</p:inputText>
</f:facet>
</p:cellEditor>
</p:column>
</c:forEach>
</p:dataTable>