Jsf 如何以编程方式重新加载p:dataGrid?

Jsf 如何以编程方式重新加载p:dataGrid?,jsf,primefaces,jsf-2.2,Jsf,Primefaces,Jsf 2.2,我有一个带有订阅和取消订阅选项的datagrid,用户可以订阅、取消订阅和监督verse。 现在我想在订阅或取消订阅后重新加载datagrid 我这样加载网格的数据 @PostConstruct public void init() { packages = packagehelper.getAllPackages(); getCurrentUserSubscritions(); } 这是xhtml文件 <h:form id="form

我有一个带有订阅和取消订阅选项的datagrid,用户可以订阅、取消订阅和监督verse。 现在我想在订阅或取消订阅后重新加载datagrid

我这样加载网格的数据

@PostConstruct
    public void init() {

        packages = packagehelper.getAllPackages();

        getCurrentUserSubscritions();
    }
这是xhtml文件

<h:form id="form">
            <p:growl id="growl" showDetail="true" sticky="false" life="8000" />  
            <p:dataGrid  var="package" value="#{packageView.packages}" columns="3" 


                         >
                <p:column>
                    <f:facet name="header">
                        Cars for Sale
                    </f:facet>

                    <p:panel  header="#{package.id}" style="text-align:center">
                        <h:panelGrid  columns="2" style="width:100%">
                            <p:graphicImage width="100px" name="images/#{package.imageurl}"/> 
                            <h:outputText value="#{package.name}" />
                            <h:outputText value="#{package.value} EGP for #{package.duration} Days " />
                            <h:outputText value="#{package.description}" />

                            <p:commandButton ajax="true" update=":pack" value="Subscribe" rendered="#{!packageView.IsPackageActive(package.id)}"  action="#{packageView.Subscribe()}"  >
                                <f:setPropertyActionListener value="#{package.id}" target="#{packageView.packageID}" />
                                <f:setPropertyActionListener value="#{package.duration}" target="#{packageView.packageDuration}" />
                            </p:commandButton>


                            <p:commandButton action="#{packageView.Unsubscribe}" update=":pack" ajax="true" value="Cancel" rendered="#{packageView.UserHasPackage(package.id) and packageView.IsPackageActive(package.id)  }">

                               <f:setPropertyActionListener value="#{package.id}" target="#{packageView.packageID}" />
                                <f:setPropertyActionListener value="#{package.duration}" target="#{packageView.packageDuration}" />
                            </p:commandButton>


                        </h:panelGrid>
                    </p:panel>
                </p:column>
            </p:dataGrid>
        </h:form>

待售汽车

当支持或取消支持操作完成时,您应该通过其ID实现DataGrid,它是,为DataGrid设置一个ID,并将该ID放入按钮的更新属性中。 例如:

<p:dataGrid id="datalist" .../>

<p:commandButton action="#{packageView.Unsubscribe}" update="datalist" .../>

当提交按钮的操作时,将包设置为null,因此当DataGrid的更新操作更新包时,应该再次调用持久性或数据库的包

<> >考虑如何在更新属性中引用元素是很重要的。