2015-10-18 2 views
-2

Я trieng обновить GridPanel, нажав на кнопку (/ Гистограмма пирог не должен быть показан):PrimeFaces CommandButton не Обновление

<h:form> 
    <div class="ui-grid ui-grid-responsive"> 
     <div class="ui-grid-row"> 
      <div class="ui-grid-col-4"> 
       <p:panelGrid columns="1" layout="grid" 
        styleClass="ui-panelgrid-blank"> 
        ... 
        <p:panelGrid columns="2" layout="grid" id="buttons" 
         styleClass="ui-panelgrid-blank"> 
         <p:commandButton update="@form" 
          actionListener="#{buttonView.pieChart}" icon="ui-icon-disk" 
          title="Zeige Pie an" /> 
         <p:commandButton update="@form" 
          actionListener="#{buttonView.barChart}" icon="ui-icon-disk" 
          title="Zeige Bar an" /> 
        </p:panelGrid> 
       </p:panelGrid> 
      </div> 
      <div class="ui-grid-col-8"> 
       <p>...</p> 
       <p:panelGrid columns="1" layout="grid" 
        styleClass="ui-panelgrid-blank" id="charts"> 
        <p:chart id="pie" type="pie" model="#{userBean.model}" 
         responsive="true" /> 
        <p:chart id="bar" type="bar" model="#{chartView.barModel}" 
         style="height:300px" responsive="true" /> 
       </p:panelGrid> 
      </div> 
     </div> 
    </div> 
</h:form> 

Мой код как-то не кажется, Работа.

+0

Вы не определили какой-либо рендеринговой метки? Является ли ваша диаграмма видимой? –

+0

Извините, я определил рендеринг тега. В моем примере я просто использовал неправильный код. Но я неправильно обновил значение, как вы описали в своем ответе. большое спасибо – Seroga

ответ

1

Чтобы скрыть и показать график, вы должны определить отображаемый атрибут rendered. Атрибут rendered принимает логическое значение.

<p:panelGrid columns="1" layout="grid" styleClass="ui-panelgrid-blank" id="charts"> 
    <p:chart id="pie" type="pie" rendered="#{buttonView.showPieChart}" model="#{userBean.model}" responsive="true" /> 
    <p:chart id="bar" type="bar" rendered="#{buttonView.showBarChart}" model="#{chartView.barModel}" style="height:300px" responsive="true" /> 
</p:panelGrid> 

Значение должно быть установлено в вашем езервное Bean, например, в buttonView.

public class ButtonView { 
... 
    private boolean isShowPieChart; 
    private boolean isShowBarChart; 
... 
} 

И наконец, переключение булевых значений.

<p:commandButton update="@form" actionListener="#{buttonView.pieChart}" icon="ui-icon-disk" title="Zeige Pie an" > 
    <f:setActionPropertyListener target="#{buttonView.showPieChart}" value="#{!buttonView.showPieChart}" /> 
</p:commandButton> 
<p:commandButton update="@form" actionListener="#{buttonView.barChart}" icon="ui-icon-disk" title="Zeige Bar an" > 
    <f:setActionPropertyListener target="#{buttonView.showBarChart}" value="#{!buttonView.showBarChart}" /> 
</p:commandButton> 
Смежные вопросы