primefaces如何更新数据表

时间:2013-04-25 10:11:47

标签: jsf jsf-2 primefaces

如何刷新页面时,如何更新primefaces.Datatable更新中的数据表。我找到了一些解决方案,但它们都没有为我工作。例如,当我将更新更改为“:companyForm:companyPanel”时,保存按钮消失。我删除了冒号,现在我可以看到按钮,但仍然不更新数据表。这是我的jsf页面;

<h:form id="companyForm" prependId="false">
  <p:panel id="companyPanel">
    <p:dataTable id="companyListTable">
     //columns
    </p:dataTable>
  </p:panel>

<p:outputPanel id="newDatePanel">
  <p:commandButton value="Save"                                         
    update="companyForm:companyPanel
    companyForm:newDatePanel"                                         
    action="#{myController.save()}"/>
</p:outputPanel>
</form>

和我的弹簧控制器;

init(){
    companyList = service.getAllCompany();
}

public void save(){
    service.save(company);
}

1 个答案:

答案 0 :(得分:2)

实际上你的ids搞砸了,否则组件会被刷新。

组件的实际客户端ID取决于标记所在的命名容器。在这种情况下,命名容器为<h:form>。当您在表单标记中包含prependId="false"属性时,嵌套<p:panel id="companyPanel">的客户端ID将为companyPanel,否则(如果您完全省略prependId) - 它将是{{ 1}}。

但是,由于您要在同一命名容器(表单)中更新组件,因此您无需在其前面加上表单ID,只需将其设为companyForm:companyPanel:如果没有冒号而且没有形式ID,那就没有了。

在您的代码现在处于状态时,没有标识为<p:commandButton update="companyPanel">的组件。