2016-09-05 4 views
1

レンダリング/可視の属性をtrueに変更するにはどうすればよいですか?チェックボックスをクリックすると、最初はfalseに設定されます。私が達成したい何チェックボックスを使用してプライムフェイスでレンダリングまたは可視の属性を変更する

<p:selectBooleanCheckbox itemLabel = "Show"> 
    <p:ajax execute = "age" render = "true"/> 
</p:selectBooleanCheckbox> 

は、チェックボックスのチェックイン時に、追加の列が年齢のレコードを表示する(アヤックス)が生成されるということです。

<p:column headerText="Age" visible= "false" id = "age"> 
     <h:outputText value="#{stud.age}" /> 
</p:column> 

どのように私はprimefacesまたはjavascriptを使用してこれを達成できますか?ありがとう

答えて

0

チェックボックスの値をバッキングBeanに保存して、ageカラムの決定にレンダリングする必要があります。ここでは簡単ですが、作業例:

XHTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://xmlns.jcp.org/jsf/html" 
     xmlns:p="http://primefaces.org/ui"> 
<h:head /> 
<h:body> 
     <h:form> 
      <p:selectBooleanCheckbox value="#{test.show}" itemLabel="Show" > 
       <p:ajax update="table"/> 
      </p:selectBooleanCheckbox> 
      <p:dataTable id="table"> 
       <p:column headerText="Name"></p:column> 
       <p:column headerText="Age" rendered="#{test.show}"></p:column> 
      </p:dataTable> 
     </h:form> 
</h:body> 
</html> 

バッキングBean:

@Named("test") 
@ViewScoped 
public class TestBean { 

    private boolean show; 

    public boolean isShow() { 
     return show; 
    } 

    public void setShow(boolean show) { 
     this.show = show; 
    } 
} 

注:この1つは、多くのと遅くなる可能性があります、全体のデータテーブルを再レンダリングデータ。

+0

列のみをレンダリングする方法を教えてください。 – Doez16

+0

私はAgeカラムをレンダリングするだけでも可能だと思いますが、最初は隠されています。私のソリューションでは、各行のBeanから列値をフェッチする必要があるため、これらの値は表の最初のバージョンには含まれていないため、データテーブルを完全に再レンダリングする必要があります。 – mikereem

関連する問題