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

primeface可约会:rowedit不工作

魏兴邦
2023-03-14

我正在尝试编辑primfaces数据表中的行数据,但不起作用。我尝试了下面链接中显示的primfaces的相同代码

http://www.primefaces.org/showcase/ui/data/datatable/edit.xhtml

我的jsf页面

<h:form id="form">
        <p:dataTable id="depTable" value="#{departmentBean.departments}"
            var="dep" editable="true">

            <f:facet name="header">
                All departments
            </f:facet>
            <p:ajax event="rowEdit" listener="#{departmentBean.onRowEdit}"
                update=":form:depTable" />
            <p:ajax event="rowEditCancel"
                listener="#{departmentBean.onRowCancel}" update=":form:depTable" />

            <p:column headerText="Id">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{dep.id}" />
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText id="modelInput" value="#{dep.id}" style="width:100%" />
                    </f:facet>
                </p:cellEditor>
            </p:column>
            <p:column headerText="Name">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{dep.name}" />
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText value="#{dep.name}" style="width:100%" />
                    </f:facet>
                </p:cellEditor>
            </p:column>
            <p:column style="width:32px">
                <p:rowEditor />
            </p:column>
        </p:dataTable>
    </h:form>

bean中的方法

public void onRowEdit(RowEditEvent event) {
    System.out.println(((Department) event.getObject()).getName());
    FacesMessage msg = new FacesMessage("Car Edited",
            ((Department) event.getObject()).getName());
    FacesContext.getCurrentInstance().addMessage(null, msg);
}

public void onRowCancel(RowEditEvent event) {
    FacesMessage msg = new FacesMessage("Edit Cancelled",
            ((Department) event.getObject()).getName());
    FacesContext.getCurrentInstance().addMessage(null, msg);
}

我正在使用primface 4.0

共有3个答案

谭毅然
2023-03-14

https://plnkr.co/edit/nYxHfY8PsGH586Om?open=lib/script.js

<div ng-controller="MainCtrl">
    <div ui-grid="gridOptions" ui-grid-edit ui-grid-row-edit ui-grid-cellNav class="grid"> 
       </div>
    <button id='flushDirty' ng-click='flushDirty()'>Flush Dirty</button>
      <button id='addRow' ng-click='addRow()'>Add Row</button>
  <br/>
  
  <p>Dirty rows: {{dirtyRows.length}}</p>

  <div ng-repeat="row in dirtyRows">
    {{row.entity.id}}, {{row.entity.gender}}
  </div>
</div>
颜君浩
2023-03-14

我遇到了这个问题,我的解决方法是将dataTable放入Form中。

连昊天
2023-03-14

在我的例子中,问题是我的支持bean是@SessionScoped(在PF示例中是@ViewScoped),所以我需要修改dataTabe值:

 <p:dataTable id="settingsTbl" value="#{settingsBean.settingsList}" var="item" editable="true">

.....

 public List<Settings> getSettingsList() {  
    if(settingsList==null){
        settingsList = settingsFacade.findAll();
    }
    return settingsList;
}
 类似资料:
  • 我有一个带有incell编辑的数据表,它可以正确显示记录,但当我尝试编辑一行时,更改不会反映出来。以下是xhtml代码: 以下是托管bean函数: 或者,我也尝试了:

  • 我在我的应用程序中使用,我在里面使用了,当我按下添加更多按钮时需要关注按钮。 示例代码 JavaScript xhtml Java语言 在这里,上面的代码可以很好地按照我的预期聚焦最后添加的selectOneMenu,但浏览器滚动条不会在聚焦最近添加的selectOneMenu组件的基础上向下移动。 请帮我解决这个问题。

  • 我有一个名为“field dWrapper”的自定义标签,用于将标签与它们各自的输入绑定并提供验证消息。 部件代码: 此标签的一个示例如下: 它自动为该输入添加一条消息,该消息在bean验证触发时呈现。 除了p:tabView之外,它在所有组件中都能正常工作。 当我在tabView中使用它时,消息会排队但不会写入,但是,如果我在组件之后手动添加消息,它们会被写入: 标签内的Bean验证 知道为什么

  • 我正在使用PrimeFaces 5.1,在我的项目dataTable中过滤使用。在文本过滤器中工作正常,但下拉过滤器工作不正常(即)在下拉列表中我显示部门,第一次我从下拉列表中选择任何值都是工作正常,另一次我选择下拉列表它不返回dataTable中显示的任何值。我从下拉列表中选择一个第一个值也抛出空指针异常。 我的疑问是默认值ALL单击和第二次选择任何值返回null或dataTable中没有数据显

  • 我有一个问题与primeface数据表。我有一个数据与一些条目和一个列与一个按钮内。如果按钮被按下,一个弹出窗口打开与另一个数据表。第二个数据表中的条目取决于行中的按钮被按下。 Bean2 问题是弹出式数据表中没有列出任何条目,尽管在db查询之后的列表中有一些条目。 有没有办法修复这个bug?提前感谢! 更新1:

  • 我想知道如何更新PrimeFaces数据表行。这是我的datatable照片,以便更好地了解我: ![1]: http://i.stack.imgur.com/N1jGz.png 我想为每一行选择他各自的状态,然后单击保存状态按钮来保存这些值。 这是我的xhtml页面代码: 提前感谢。