0

私のプロジェクトには、チェックボックスがオンになっていることに基づいて 2 つのテキスト ボックスを表示するように指定する要件があります。選択されたチェックボックスごとに、2 つのテキストボックスは同じです。ツイストは、チェック ボックス リストが動的であり、将来の追加に対応できることです。チェック ボックス リストは DB から取得されます。これをJSFでどのように行うことができますか?

4

2 に答える 2

0

タグの valueChangeListener プロパティを使用できます。

      <h:selectManyCheckbox id="" value="#{bean.selectedItems}" valueChangeListener="#{bean.renderTextBox}">
         <f:selectItems value="#{bean.checkBoxList}"/>
      </h:selectManyCheckbox>
<h:inputText value="" rendered="#{bean.render}"/>

Bean に render というプロパティを設定します。valuechange メソッド、つまり renderTextBox で次のコードを記述します。

public void renderTextBox(event)
{

 if(isInvokeApplicationPhase(event))
{
//change the value of render property to true or false depending on checkbox is checked or not
}

}
public boolean isInvokeApplicationPhase(FacesEvent event){      
    if(event.getPhaseId() != PhaseId.INVOKE_APPLICATION){
        event.setPhaseId(PhaseId.INVOKE_APPLICATION);
        event.queue();
        return false;
    }       
    return true;
}

データベースからチェックボックスリストを取得するには、次のメソッドを記述します

 public List getcheckBoxList() 
{
public List checkBoxList = null
// retrieve list of checkbox from your db(write query here and assign returned list to checkBoxList  variable and return that varaible)
}

getcheckBoxList() は getter メソッドです。checkBoxList 変数を<f:selectItems>タグにバインドしました

于 2013-05-08T06:58:11.590 に答える
0

JavaScript を使用して、入力ボックスの表示と非表示を切り替えることができます

 var checkbox=document.getElementById("ID");

        if(checkbox.value== 'null')
            checkbox.style.display = "none";
        else
            checkbox.style.display = "inline";
于 2013-12-05T10:34:27.713 に答える