0

データベースから動的に生成されたデータを含むデータテーブルがあります。ユーザーは行を選択/選択解除できますが、データベースからmustSelectとして設定されていない行のみです。

マイビーン

        public boolean isDisabled () {
    if (evState == EvaluationState.MUST_EVALUATE) {
        return true;
    } else {
        return false;
    }
}

public boolean isChecked() {
    if (evState == EvaluationState.EVALUATE
            || evState == EvaluationState.MUST_EVALUATE) {
        return true;
    } else {
        return false;

    }
}

と私のxhtmlCode:

<p:selectBooleanCheckbox value = "#{myBean.checked}" disable = "#{myBean.disabled}" />

これは現在、私が望むように機能していません。すべてのチェックボックスが選択されています。コンパイル時に、どのチェックボックスが有効になるかわからないため、メソッドを無効にします。

誰かが動的に無効に設定する方法を持っているなら、私はとても幸せです。

4

1 に答える 1

1

モデルには、コントローラーではなく、これらの操作を処理するための2つの属性が含まれている必要があります。

//defining the model
public class Data {
    private String name;
    //you get the idea...
    private boolean checked;
    private boolean disabled;
    //getters and setters...
}

//defining the controller
@ViewScope
public class MyBean {
    private List<Data> lstData;

    public MyBean() {
        //initialize data...
    }

    //getter and setter
}

景色

<h:dataTable value="#{myBean.lstData}" var="data">
    <h:column>
        <h:outputText value="#{data.name}" />
    </h:column>
    <h:column>
        <p:selectBooleanCheckbox value="#{data.checked}" disabled = "#{data.disabled }"/>
    </h:column>
</h>dataTable>

このようにして、すべての行に独自のチェックおよび無効化されたデータ値があります。

于 2012-05-26T05:02:01.727 に答える