2013-04-25 45 views
0

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

<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); 
} 
+0

托管bean的范围是什么? – 2013-04-25 10:21:14

+0

因为你正在使prependId =“false”,那么在更新不要把表单ID,它应该是这样的,更新=“:companyListTable” – 2013-04-25 10:22:13

+0

“我删除冒号,现在它工作”,你的代码工作正常吗? “ – 2013-04-25 10:23:09

回答

2

其实你已经搞砸了,否则组件会被刷新。

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

不过,只要你想在同一命名容器内更新组件(形式),你不需要用表格ID前缀它,让它简单地<p:commandButton update="companyPanel">:没有冒号,没有形式的ID,是有任何。

在您的代码现在的状态下,没有编号为companyForm:companyPanel的组件。

+0

感谢它现在的作品 – 2013-04-25 10:54:18

+0

不客气! – skuntsel 2013-04-25 10:55:04

相关问题