在 cellEdit p:ajax 事件上消失 p:DataTable

固体开发人员

我使用 NetBeans 8.2、GlassFish 5.0、PrimeFaces 5.0。我创建了一个带有单元格可编辑数据表的页面。当我在 ajax 事件之后对一个单元格进行修改时,整个数据表都被修改后的值替换了。就像 ajax 响应不会发回整个表格内容一样。我该如何纠正?

面:

    <h:form id="frmDemands">
        <p:growl id="msgs" showDetail="true"/>
        <div>
        <p:dataTable 
            id="dtblDemands" 
            value="#{demandUtility.demands}" 
            var="demand" 
            editable="true" 
            editMode="cell" 
            paginator="true" 
            paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
            rowsPerPageTemplate="5,10,15">
            <p:ajax event="cellEdit" listener="#{applicantBean.onCellEdit}" update=":frmDemands :frmDemands:msgs"/>
            <f:facet name="header">Demands</f:facet>
            <p:column headerText="ID">
                <h:outputText value="#{demand.id}"/>
            </p:column>
            <p:column headerText="Amount">
                <p:cellEditor>
                    <f:facet name="output"><h:outputText value="#{demand.amount}"/></f:facet>
                    <f:facet name="input"><p:inputText value="#{demand.amount}"/></f:facet>
                </p:cellEditor>
            </p:column>
            <p:column headerText="State">
                <h:outputText value="#{demand.state}"/>
            </p:column>
            <p:column>
                <p:commandButton value="Delete" rendered="#{applicantBean.isDemandDeleteable( demand )}" actionListener="#{applicantBean.onDeleteDemand( demand.id )}" update="@form"/>
            </p:column>
        </p:dataTable>
        </div>
    </h:form>

支持 bean 处理 cellEdit 事件:

@Named
@RequestScoped
@Data
public class ApplicantBean
{

  @Inject
  private DemandUtility demandUtility;

  ...

  public void onCellEdit( CellEditEvent event_ )
  {
    int rowIndex = event_.getRowIndex();
    double newValue = (Double) event_.getNewValue();
    Demand demand = demandUtility.getDemands().get( rowIndex );
    demand.setAmount( newValue );

    Event event = new Event( demandUtility.getNextEventId(), new Date(), "Demand (" + demand.getId() + ") modified! New amount: " + newValue );
    demandUtility.getEvents().add( event );
  }

  ...

}

当我尝试将@parent设置为updateajax 事件的属性时,它dataTable也会消失。

有人可以帮我吗?

米霍克

创建一个更新您的表格并将您的范围更改为@ViewScoped 它对我有用。

<h:form id="frmDemands">
    <p:growl id="msgs" showDetail="true"/>
    <p:remoteCommand name="rcCellEditUpdate" 
                     update=":frmDemands:dtblDemands :frmDemands:msgs" />
    <div>
        <p:dataTable 
            id="dtblDemands" 
            value="#{demandUtility.demands}" 
            var="demand" 
            editable="true" 
            editMode="cell" 
            paginator="true" 
            paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
            rowsPerPageTemplate="5,10,15">
            <p:ajax event="cellEdit" listener="#{applicantBean.onCellEdit}" oncomplete="rcCellEditUpdate();"/>
            <f:facet name="header">Demands</f:facet>
            <p:column headerText="ID">
                <h:outputText value="#{demand.id}"/>
            </p:column>
            <p:column headerText="Amount">
                <p:cellEditor>
                    <f:facet name="output"><h:outputText value="#{demand.amount}"/></f:facet>
                    <f:facet name="input"><p:inputText value="#{demand.amount}"/></f:facet>
                </p:cellEditor>
            </p:column>
            <p:column headerText="State">
                <h:outputText value="#{demand.state}"/>
            </p:column>
            <p:column>
                <p:commandButton value="Delete" rendered="#{applicantBean.isDemandDeleteable( demand )}" actionListener="#{applicantBean.onDeleteDemand( demand.id )}" update="@form"/>
            </p:column>
        </p:dataTable>
    </div>
</h:form>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在完成<p:ajax event =“ cellEdit”>时更新整个<p:dataTable>

来自分类Dev

在<p:datatable>中包含<p:ajax>的<p:outputLabel>的click事件

来自分类Dev

<p:分页后dataTable ajax问题

来自分类Dev

使用<p:commandButto>和<f:ajax>在<p:datatable>中添加动态行

来自分类Dev

f:ajax不会在p:layout中呈现p:dataTable

来自分类Dev

将p:dataTable的当前选定行传递给p:ajax oncomplete中的JavaScript函数

来自分类Dev

显示p:dataTable行号

来自分类Dev

p:dataTable不分页

来自分类Dev

p:selectCheckboxMenu ajax事件名称,用于关闭

来自分类Dev

设置p:dataTable p:列宽

来自分类Dev

p:datatable 中的 p:selectmanycheckbox 覆盖选择

来自分类Dev

如何重置每页上ap:dataList / p:dataTable的行索引?

来自分类Dev

无法将焦点设置在dataTable中的p:inputText上

来自分类Dev

PrimeFaces DataTable CellEdit获取实体/对象

来自分类Dev

在p:datatable和p:columns中未触发带有f:ajax侦听器的h:inputTex

来自分类Dev

p:ajax无法更新p:inputText

来自分类Dev

从嵌套在复合中的<p:ajax>触发<cc:clientBehavior>事件

来自分类Dev

嵌套在h:form中时支持的p:ajax事件

来自分类Dev

如何在ajax更改事件中提交p:selectOneMenu值?

来自分类Dev

<p:ajax>事件不会在<p:selectonemenu>的ValueChangeEvent中触发

来自分类Dev

从<p:dataTable>到<p:dialog>查看所选行的数据

来自分类Dev

使用p:printer以常规格式打印重排的p:dataTable

来自分类Dev

如何在p:rowExpansion中更新p:dataTable

来自分类Dev

从<p:dataTable>到<p:dialog>查看所选行的数据

来自分类Dev

p:commandLink不会在p:dataTable中调用actionlistener

来自分类Dev

如何在p:ajax提交的输入组件上获取p:resetInput功能

来自分类Dev

<p:blockUI>在<h:commandButton> <f:ajax>上不响应

来自分类Dev

UIInput上的p:ajax Instant =“ true”不会跳过验证

来自分类Dev

如何删除p:dataTable的border-collapse?

Related 相关文章

  1. 1

    在完成<p:ajax event =“ cellEdit”>时更新整个<p:dataTable>

  2. 2

    在<p:datatable>中包含<p:ajax>的<p:outputLabel>的click事件

  3. 3

    <p:分页后dataTable ajax问题

  4. 4

    使用<p:commandButto>和<f:ajax>在<p:datatable>中添加动态行

  5. 5

    f:ajax不会在p:layout中呈现p:dataTable

  6. 6

    将p:dataTable的当前选定行传递给p:ajax oncomplete中的JavaScript函数

  7. 7

    显示p:dataTable行号

  8. 8

    p:dataTable不分页

  9. 9

    p:selectCheckboxMenu ajax事件名称,用于关闭

  10. 10

    设置p:dataTable p:列宽

  11. 11

    p:datatable 中的 p:selectmanycheckbox 覆盖选择

  12. 12

    如何重置每页上ap:dataList / p:dataTable的行索引?

  13. 13

    无法将焦点设置在dataTable中的p:inputText上

  14. 14

    PrimeFaces DataTable CellEdit获取实体/对象

  15. 15

    在p:datatable和p:columns中未触发带有f:ajax侦听器的h:inputTex

  16. 16

    p:ajax无法更新p:inputText

  17. 17

    从嵌套在复合中的<p:ajax>触发<cc:clientBehavior>事件

  18. 18

    嵌套在h:form中时支持的p:ajax事件

  19. 19

    如何在ajax更改事件中提交p:selectOneMenu值?

  20. 20

    <p:ajax>事件不会在<p:selectonemenu>的ValueChangeEvent中触发

  21. 21

    从<p:dataTable>到<p:dialog>查看所选行的数据

  22. 22

    使用p:printer以常规格式打印重排的p:dataTable

  23. 23

    如何在p:rowExpansion中更新p:dataTable

  24. 24

    从<p:dataTable>到<p:dialog>查看所选行的数据

  25. 25

    p:commandLink不会在p:dataTable中调用actionlistener

  26. 26

    如何在p:ajax提交的输入组件上获取p:resetInput功能

  27. 27

    <p:blockUI>在<h:commandButton> <f:ajax>上不响应

  28. 28

    UIInput上的p:ajax Instant =“ true”不会跳过验证

  29. 29

    如何删除p:dataTable的border-collapse?

热门标签

归档