我使用p:dataTable
进行单元格编辑,并在Editable=true的p:selectonemenu
上使用验证器。如果选择的P:SelectoneMenu值或键入的值无效,我希望单元格编辑状态保持在编辑模式(第二个屏幕截图),并像使用常规表单(第三个屏幕截图)一样在输入周围显示红色框。当验证失败时,会显示咆哮和消息,但下拉框周围的红色框不会持续存在,我担心用户可能不会注意到(第一张屏幕截图)。我不知道如何进行ajax更新来显示红色框,但保持单元格在编辑模式下,以便下拉框和红色框仍然可见。
<p:dataTable id="table" value="#{bean.data}" var="lineItem" editable="true" editMode="cell">
<p:column headerText="* Account">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{lineItem.account}" />
</f:facet>
<f:facet name="input">
<p:selectOneMenu id="so" value="#{lineItem.account}" editable="true" dynamic="true" converter="omnifaces.SelectItemsConverter" title="Type an account or select a stored favorite" validator="com.gdeb.rozycki.app.acountValidator" >
<f:selectItem noSelectionOption="true" itemLabel="---Favorites" itemValue="null" />
<f:selectItems value="#{bean.favorites}" var="fav" itemLabel="#{fav.acctNum}" itemValue="#{fav}" />
<p:ajax disabled="#{facesContext.validationFailed}" update="table growl messages" listener="#{bean.updateAccountInline(lineItem)}" />
</p:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
这个截图,我试着把帐号改成一个存储的收藏夹,这个收藏夹是用一个空格保存的,我们再也不想要空格了。(是的,我现在有验证不允许空间时,用户保存他们最喜欢的帐号,但有其他验证,我们将实现)当验证失败,只是头和咆哮消息显示。红色的out线是不可见的,直到他们再次点击下拉菜单,如第二张截图所示。
Ajax
调用在其update
属性中有datatable idtable
。我删除了那个ClientID并删除了disabled=“#{facescontext.validationfailed}”
我认为celledit
函数会自动更新实现celledit的组件ClientId。因此无需在我的ajax标记中显式指定。
我还猜测ajax标记总是运行更新,但监听器只运行成功。
<p:ajax update="growl messages" listener="#{bean.updateAccountInline(lineItem)}" />
我有一个带有单元格编辑功能的数据表,我想通过应用一个不同样式的类来更新数据表以显示修改后的记录。 以下是我的问题: 如果在激发onCellEdit事件时未更新数据表,则记录已正确更新,但无法看到已修改行的applyed style类。 如果在onCellEdit事件激发时更新数据表,并使用return键更新值,则一切正常,并且可以看到修改行的应用样式类。 如果我在单元格编辑事件触发时更新数据表,并
我有一个带有单元格编辑的primefaces datatable,它可以在视图中的一个布尔变量上切换。 我有三个问题: 在编辑模式下,我更改了一个值,然后单击页面上的“保存”按钮,它不会保留新值,如果我先单击页面上的任何其他位置,然后单击“保存”,它将保留该值。如果您先单击“保存”,我需要它来保留值。 如果我编辑了一个输入文本的单元格,然后我单击了它,那么该字段现在就是一个输出文本,直到我再次单击
问题内容: 我的JTable有一个密码字段编辑器。如果用户单击以编辑另一个字段时文本长度小于8位,我想显示一条错误消息。我已经尝试过焦点监听器。但是它不起作用。请帮助我,因为我刚刚开始使用Java swing。 问题答案: 覆盖stopCellEditing()并在其中实现条件。
我有行编辑的dataTable,但我不需要编辑我的一个单元格(user.username)。我怎样才能做到这一点?这可能吗?我尝试删除一个单元格的p:cellEditor,但它在我的平板电脑上不起作用,因为当我在DataTable中使用它时,该列为空。 谢谢 我的代码:
问题内容: 我需要在jTable中显示数字,精确到小数点后两位。为此,我创建了一个自定义单元格编辑器,如下所示: 该单元格编辑器非常适合将点用作小数点的英语语言环境。但是在德语语言环境中,它不接受逗号作为小数点的值。请让我知道我的代码中有问题的地方。提前致谢。 编辑:这是我如何使其工作: 问题答案: 使用语言环境来发挥您的优势:
我在这个JTable上有问题。我这样编辑单元格 然后,我按Enter键提交更改。在这里,我希望gui用新的值刷新表。 但它们不显示,只有当我像这样更改选择时它们才显示 这是在TableModel中调用的。