当前位置: 首页 > 知识库问答 >
问题:

primefaces-编辑不含一个单元格的行

苗康平
2023-03-14

我有行编辑的dataTable,但我不需要编辑我的一个单元格(user.username)。我怎样才能做到这一点?这可能吗?我尝试删除一个单元格的p:cellEditor,但它在我的平板电脑上不起作用,因为当我在DataTable中使用它时,该列为空。

谢谢

我的代码

<h:form id="form">
        <p:growl id="messages" showDetail="true" />
        <p:contextMenu for="dataTable">
            <p:menuitem value="Delete" update="dataTable" icon="ui-icon-close"
                actionListener="#{userMB.deleteUser}" />
        </p:contextMenu>
        <p:dataTable id="dataTable" var="user" styleClass="DataTableUsers"
            value="#{userMB.userList}" paginator="true" rows="5"
            rowKey="#{user.user_id}" selection="#{userMB.selectedUser}"
            selectionMode="single" filteredValue="#{userMB.filteredUsers}"
            editable="true"
            paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
            rowsPerPageTemplate="5,10,15">
            <p:ajax event="rowEdit" immediate="true" listener="#{userMB.onEdit}"
                update=":form:messages, :form:dataTable" process="@this" />
            <p:column sortBy="name" filterBy="name" id="name" headerText="Name">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{user.name}" />
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText value="#{user.name}" required="true"
                            requiredMessage="Please Enter Name"
                            validatorMessage="Name is too short!">
                            <f:validateLength minimum="2"></f:validateLength>
                        </p:inputText>
                    </f:facet>
                </p:cellEditor>
            </p:column>
            <p:column sortBy="surname" filterBy="surname" headerText="Surname">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{user.surname}" />
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText value="#{user.surname}" required="true"
                            requiredMessage="Please Enter Surname!"
                            validatorMessage="Surname is too short!">
                            <f:validateLength minimum="2"></f:validateLength>
                        </p:inputText>
                    </f:facet>
                </p:cellEditor>
            </p:column>

            <p:column sortBy="username" filterBy="username"
                headerText="Index number">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{user.username}" />
                    </f:facet>
                    <f:facet name="input">
                        <h:inputText value="#{user.username}" />
                    </f:facet>
                </p:cellEditor>
            </p:column>

            <p:column sortBy="userDescription" filterBy="userDescription"
                headerText="descript">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{user.userDescription}" />
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText value="#{user.userDescription}" required="true"
                            requiredMessage="Please Enter User Description" />
                    </f:facet>

                </p:cellEditor>
            </p:column>
            <p:column style="width:6%" headerText="Edit">
                <p:rowEditor />
            </p:column>
            <f:facet name="footer">
                <p:commandButton value="New User" oncomplete="newUserDialog.show()"
                    icon="ui-icon-star" title="Creates new user" />

            </f:facet>
        </p:dataTable>
    </h:form>

共有1个答案

慕弘伟
2023-03-14

只需将保存user.username值的组件更改为

<h:outputText value="#{user.username}" />

您将拥有只读的值。

 类似资料:
  • 我有一个带有单元格编辑的primefaces datatable,它可以在视图中的一个布尔变量上切换。 我有三个问题: 在编辑模式下,我更改了一个值,然后单击页面上的“保存”按钮,它不会保留新值,如果我先单击页面上的任何其他位置,然后单击“保存”,它将保留该值。如果您先单击“保存”,我需要它来保留值。 如果我编辑了一个输入文本的单元格,然后我单击了它,那么该字段现在就是一个输出文本,直到我再次单击

  • 我有一个带有单元格编辑功能的数据表,我想通过应用一个不同样式的类来更新数据表以显示修改后的记录。 以下是我的问题: 如果在激发onCellEdit事件时未更新数据表,则记录已正确更新,但无法看到已修改行的applyed style类。 如果在onCellEdit事件激发时更新数据表,并使用return键更新值,则一切正常,并且可以看到修改行的应用样式类。 如果我在单元格编辑事件触发时更新数据表,并

  • 问题内容: 嗨,我正在使用GXT 2.2.3创建可编辑网格。我创建了如下列: 现在,我想根据eventCombo框值的值,将checkinDate,CheckIntime,CheckOutDate和CheckOutTime列单元格设置为不可编辑或禁用。 如何在eventCombo的侦听器框中进行此操作。请提出建议。 我是GXT的新手。 更新 我尝试了下面的代码来禁用和启用单元格,但是它禁用了单元格

  • 在我的datatable中,根据列“Délai Action”,当没有日期时,其他列必须是红色的。最后一列有一个黄色/橙色/红色的球图标,取决于日期。那么如何更新行,然后显示红色或不红色的列和对应的色球呢? 我尝试了不同的方法,比如: 也可以在我的enregistrer()方法中使用: 提前致谢 Primefaces 6.0/JSF 2.3

  • 我有一个剑道网格,根据第一列中的值,COR ABA编号可以编辑也可以不编辑。因此,如果NOC代码=='C01',则COR ABA编号可编辑,否则不可编辑。 我通过在列和编辑处理程序中添加编辑事件来实现这一点,在不允许编辑的情况下,禁用HTML输入Kendo创建。(在栅格定义中,我有可编辑(true)开始)。我希望通过在网格的数据绑定事件中执行逻辑检查来实现这一点。也就是说,在绑定所有数据后,迭代数

  • 我使用进行单元格编辑,并在Editable=true的上使用验证器。如果选择的P:SelectoneMenu值或键入的值无效,我希望单元格编辑状态保持在编辑模式(第二个屏幕截图),并像使用常规表单(第三个屏幕截图)一样在输入周围显示红色框。当验证失败时,会显示咆哮和消息,但下拉框周围的红色框不会持续存在,我担心用户可能不会注意到(第一张屏幕截图)。我不知道如何进行ajax更新来显示红色框,但保持单