我有一个带有单元格编辑的primefaces数据表,它在视图中的布尔变量上切换。
我有三个问题:
以下是代码:
<p:dataTable value="#{view.LineItems}" var="lineItem" rowKey="#{lineItem.lineItemId}"
resizableColumns="false" editable="#{view.editable}" editMode="cell"
editingRow="#{view.editable}" id="requestLineItemsTable">
<p:ajax event="cellEdit" listener="#{view.cellEdited}" immediate="true" update="@this" />
<p:column styleClass="centerColumnData" headerText="Item Name" style="width: 140px;">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{lineItem.title}"/>
</f:facet>
<f:facet name="input">
<h:inputText value="#{lineItem.title}"/>
</f:facet>
</p:cellEditor>
</p:column> ...
这是后端(对此没有做任何事情)
public void cellEdited(CellEditEvent event)
{
Object oldValue = event.getOldValue();
}
以下是与datatable相同的.xhtml页面上的保存和编辑按钮
<p:commandLink process="@this"
action="#{view.changeModeToEdit}"
update="@form"
rendered="#{!view.editMode">
<h:graphicImage library="images" name="edit20.png" title="#{__Common.edit}"
style="height: 15px; width: 15px;"/>
</p:commandLink>
<components:linkWithSpinner linkStyle="margin-right: 20px;" loadingImageStyle="margin-right: 20px;"
linkStyleClass="activeButton saveButtonRequestDetails" loadingImageStyleClass="saveButtonRequestDetails"
linkText="#{__CommonButton.save}"
process="@form" update="@form"
actionMethod="#{view.updateRequest()}"/>
view.updateRequest()将editable设置为false。我正在使用Primefaces 4.0
答案 0 :(得分:0)
所以我想出了解决这些问题的方法。我专注于使用内置的编辑表,但你可以只有一个普通的数据表,列可以包含输入文本字段。那么你不必担心我上面的问题中的大多数问题。如果你需要在编辑和非编辑视图之间切换,那么我仍然不知道如何完全修复它,除了你的文件中有两个数据表与渲染标记,但是然后你复制表一个输入文本字段和一个与输出文本字段,这不是最好的方法。