2015-03-02 3 views
1

У меня есть datagrid с возможностью подписки и отмены подписки, поэтому пользователь может подписаться и отказаться от подписки и стиха. теперь я хочу, чтобы перезагрузить DataGrid после подписки или отпискикак перезагрузить p: 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> 

ответ

2

Когда Подпишитесь или отказаться от получения бюллетеня действие завершено, вы должны выполнить DataGrid через свой идентификатор, он установлен в DataGrid и вводит такой идентификатор в свойство обновления кнопок. Например:

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

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

И когда действие кнопки занесено установить пакеты в нуле, так что, когда действие обновления DataGrid обновить пакеты, они должны быть вызваны снова в инерционности или данных базы.

Важно рассмотреть, как ссылаться на элементы в свойстве update. You can see this answer

Смежные вопросы