豊富:インターネットエクスプローラでデータテーブルと伸縮柱
-
20-09-2019 - |
質問
私は、拡張可能な列/リッチ持つ行のためのシンプルなソリューションを作成しました豊富で拡張可能/折りたたみ可能なサブテーブル: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コード。」の