質問

データテーブルと豊富な::カラムに似ています作るために最善の方法

私は、拡張可能な列/リッチ持つ行のためのシンプルなソリューションを作成しました豊富で拡張可能/折りたたみ可能なサブテーブル:dataTableの

Faceletsのコードである(簡略化)を次のように

<rich:dataTable id="detailtable"
    value="#{bean.model}"
    var="row"
    columns="2">
    <rich:column id="detail-check">
        <f:facet name="header">
            <h:selectBooleanCheckbox value="#{bean.expandAll}">
                <a4j:support event="onchange" action="#{bean.expandAllAction}"
                    reRender="detailtable" />
            </h:selectBooleanCheckbox>
        </f:facet>
        <h:selectBooleanCheckbox value="#{row.expanded}">
            <a4j:support event="onchange" reRender="detailtable" />
        </h:selectBooleanCheckbox>
    </rich:column>
    <!-- actual data column -->
    <rich:column id="detail-column"
        rendered="#{row.expanded}"
        breakBefore="true"
        colspan="2">
        <!-- detail column content -->
    </rich:column>
</rich:dataTable>
あなたは、詳細ボックスをクリックすると、

このは、拡張列を持つテーブルを提供し、詳細列は、実際の行の下にレンダリングされます。列の上に豆だけ繰り返し処理をバックアップするため、すべての行をunexpanding /拡大、バッキングBeanと同じにその拡大属性を設定上のexpandAllActionます。

それはFFとChromeで動作しますが、

しかし、これは、インターネットエクスプローラ(IE7やIE8)で正常に動作しません。ユーザーがチェックボックスをクリックすると、彼はページ上の他の場所をクリックするまで、何もレンダリングされません。他のいくつかの要素がクリックされるまで、豆とオブジェクト更新されているが、無再レンダリングをバックアップます。

これはIEのか、RichFacesのとちょうどバグで再び邪悪なものですか?私はIEとTBODYでいくつかの同様の問題を発見し、それが固定されている必要があります。私は、バグレポートを提出することができますが、それまでは、任意の単純な回避策はありますか?

RichFacesのバージョンは3.3.1であり、それは、Sun RIをJBossの4.2.1GA上で実行し、バンドルされています。

役に立ちましたか?

解決

onclick
のような別のイベントを使用して試してみてください EM onchangeは、<: selectBooleanCheckBoxするのtldocから>「Javascriptのコードを、この要素がフォーカスを失って、その値がフォーカスを得て以来、変更されたときに実行。」のとonclickは、のある「ポインタボタンがこの要素上でクリックされたときに実行されるJavaScriptコード。」

昨日はをhref="https://stackoverflow.com/questions/1743690/jsf-a4j-support">ました。 BalusCの一つのコメントは、<全角>私の仮定を確認するかもしれない「ラジオの場合は/変更イベントを使用すると、2回をクリックした場合のみ、発射特定のブラウザにあるチェックボックス」の

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top