免責事項:私は長い間頭痛のないYUI DataTableを頻繁に使用しています。パワフルで安定しています。必要に応じて、サポートする ScrollingDataTableを使用できます。
- Xスクロール
- yスクロール
- xyスクロール
- 強力なイベント メカニズム
必要なものについては、tableScrollEventが必要だと思います。そのAPIは言う
固定スクロールの DataTable にスクロールがある場合に発生します。
各 DataTable は DataSource を使用するため、必要に応じて ScrollingDataTable を設定するために、tableScrollEventとレンダリング ループ サイズを介してそのデータを監視できます。
レンダーループサイズは言う
DataTable が非常に大きなデータ セット全体を表示する必要がある場合、renderLoopSize 構成を使用すると、UI スレッドが非常に大きなテーブルでロックされないようにブラウザー DOM レンダリングを管理できます。0 より大きい値を指定すると、各ループで指定された行数をレンダリングする setTimeout() チェーンで DOM レンダリングが実行されます。厳格な規則はなく、一般的なガイドラインのみがあるため、理想的な値は実装ごとに決定する必要があります。
- デフォルトでは renderLoopSize は 0 であるため、すべての行が単一のループでレンダリングされます。renderLoopSize > 0 はオーバーヘッドを追加するため、慎重に使用してください。
- データ セットが十分に大きく(行数 X 列数 X 書式設定の複雑さ)、ユーザーがビジュアル レンダリングで遅延を経験したり、スクリプトがハングしたりする場合は、 renderLoopSize の設定を検討してください。
- 50 未満の renderLoopSize はおそらく価値がありません。renderLoopSize > 100 の方が良いでしょう。
- 何百もの行がない限り、データセットはおそらく十分な大きさとは見なされません。
- renderLoopSize > 0 かつ < total rows を持つと、テーブルが 1 つのループでレンダリングされますが (renderLoopSize = 0 と同じ)、別の setTimeout スレッドから処理されるレンダリング後の行ストライピングなどの機能もトリガーされます。
例えば
// Render 100 rows per loop
var dt = new YAHOO.widget.DataTable(<WHICH_DIV_WILL_STORE_YOUR_DATATABLE>, <HOW YOUR_TABLE_IS STRUCTURED>, <WHERE_DOES_THE_DATA_COME_FROM>, {
renderLoopSize:100
});
<WHERE_DOES_THE_DATA_COME_FROM> は単一のDataSourceです。JSON、JSFunction、XML、さらには単一の HTML 要素にすることもできます
ここでは、私が提供する簡単なチュートリアルを見ることができます。シングル クリックとデュアル クリックを同時にサポートする DATA_TABLE プラグインは他にないことに注意してください。YUI DataTable で可能になります。さらに、JQuery でも問題なく使用できます。
いくつかの例を見ることができます
YUI DataTable について他に知りたいことがあれば、遠慮なく質問してください。
よろしく、