数据表中的行样式未更新



我有一个启用了单元格编辑的数据表。该表具有一个 rowStyleClass,该类根据行状态(插入、更新、删除或无)分配背景色。因此,当我编辑一行时,它会获得 UPDATED 状态,单击删除按钮时,行会获得 DELETE 状态,...根据该状态,行背景应正确着色(绿色表示已更新,红色表示已删除,黄色表示已插入)。

我的代码:

<p:dataTable id="tblElement" var="eltItem" value="#{bean.elementList}" binding="#{bean.dtElements}" emptyMessage="No data to be displayed."
                editable="true" editMode="cell" rowIndexVar="rowIndexElt" rowKey="#{eltItem.id}" resizableColumns="true" styleClass="eltStyle"
                rowStyleClass="#{bean.elementRowStyle}">
                <p:ajax event="cellEdit" listener="#{bean.doMarkRowAsUpdated}" update=":form1:tabView:tblElement" />
                <p:column>
                    <p:commandButton id="btnMarkAsDeleted" icon="ui-icon ui-icon-trash" update="tblElement" action="#{bean.doBtnMarkAsDeleted}">
                        <p:confirm header="Confirm" message="Do you really want to delete an element?" icon="ui-icon-alert" />
                    </p:commandButton>
                </p:column>
                <p:column headerText="Key">
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="#{eltItem.key}" />
                        </f:facet>
                        <f:facet name="input">
                            <p:inputText value="#{eltItem.key}" />
                        </f:facet>
                    </p:cellEditor>
                </p:column>
               <!-- some more columns -->
<p:dataTable>

编辑单元格时,应执行doMarkRowAsUpdated方法...确实如此。行状态设置为"已更新",因此编辑的行背景应着色为绿色,但事实并非如此。 请注意,rowStyleClass 值是应有的,因为当表编辑模式设置为"row"时,整个着色功能都会起作用。还有一件事要提一下...假设我编辑了一些行。如前所述,背景颜色不会改变。但是,如果我的下一个操作是将其他行标记为已删除,则该行显示为红色。这还不是全部 - 以前编辑的行也显示为绿色!这就像在执行"按钮单击"方法后,行样式更新,但在执行"cellEdit"事件方法后,行样式不会更新。

任何建议如何使行着色工作?

我正在使用 PF 5.1。

当您在表单中嵌入表格并使用如下所示的remoteCommand更新表单时,它应该可以工作:

<p:remoteCommand name="onCellEdit"  update="@form" />
<p:dataTable ... rowStyleClass="#{bean.elementRowStyle}">
<p:ajax 
   event="cellEdit"
   listener="#{bean.doMarkRowAsUpdated}"
   oncomplete="onCellEdit()"/>

相关内容

  • 没有找到相关文章

最新更新