0

私は持っている

<h:column headerClass="details_header">
    <h:panelGroup rendered="#{foo.checkIffooIsAvailable(table.YooId)}">
        <h:form>
            <h:inputHidden id="hiddenYooboo" value="#{table.YooId}" 
                binding="#{foo.hiddenInputValue}"/>
            <a4j:commandButton styleClass="quickYooButton fooButton"
                value="#{textElement.getText('foo')}" reRender="fooPanel" 
                action="#{foo.getFullfooAmount()}">
                <rich:componentControl for="fooPanel" event="oncomplete" 
                    operation="show" />
            </a4j:commandButton>
        </h:form>
    </h:panelGroup>
</h:column>

そしてバックエンド

private Integer boo;
private BigDecimal partialfoo;
public List<Integer> fooTableYoos = new ArrayList<Integer>();
public UIInput hiddenInputValue;    

public Boolean checkIffooIsAvailable(Integer tableboo) {
    Iterator<Integer> iter = fooTableYoos.iterator();
    while (iter.hasNext()) {
        if (iter.next().compareTo(tableboo) == 0) {
            return true;
        } else {
            return false;
        }
    }
    return false;
}

public BigDecimal getFullfooAmount() {
    BigDecimal fooAmount = null;
    try {
        fooAmount = new BigDecimal(100);
        setFullfoo(fooAmount);
    } catch (Exception e) {
        log.error("getFullfooAmount()", e);
    }
    return fooAmount;
}
    public UIInput getHiddenInputValue() {
    return hiddenInputValue;
}

public void setHiddenInputValue(UIInput hiddenInputValue) {
    this.hiddenInputValue = hiddenInputValue;
}

問題は、commandButton をクリックするとエラーが発生することです。

Seam コンポーネントをインスタンス化できませんでした: テーブル。

ブーがリストにあるかどうか、およびレンダリングボタンが真の場合は、テーブルのレンダリング時にチェックする必要があります。次に、ボタンが表示されたら、クリックしたIDを確認し、このIDでデータをリロードしてモーダルを開く必要があります。table という名前のコンポーネントはありません。それはdataTableのものだけです。h:CommandButton動作しますが、モーダルは 2 回目のクローズ後にモーダルのデータをリロードしません。

4

1 に答える 1

1

解決策は、dataTable のタイプを rich:dataTable に変更することでした

于 2016-09-21T08:18:01.620 に答える