Rico ライブラリは 2 つの異なったタイプのグリッドをサポートします。 LiveGrid と SimpleGrid. LiveGrid のデータは、2次元の JavaScript 配列で、常にバッファリングされます。 ユーザがグリッドを通して垂直にスクロールするとき、データは配列からグリッドに動的にコピーされます。 一方、SimpleGrids はバッファリングを行いません。 -- グリッドのためのすべてのデータは JavaScript のデータ構造では無く、 DOM に存在しています。
どちらのタイプのグリッドも、次のようないくつかの共通点を持っています。
Rico は、LiveGrid バッファをロードするために多くのサポートを提供します。 バッファは次の項目からロードする事が出来ます。
SQL クエリの実行結果を LiveGrid にロードするタスクを簡素化するために、 Rico にはデータベースと LiveGrid を接続する "plug-ins" のセットが付属しています。 Rico プラグインは次のデータベースでテストされました。
MySQL | Oracle | DB2 | SQL Server | MS Access | |
---|---|---|---|---|---|
PHP | |||||
ASP | |||||
.net |
2007 年 11 月における Rico プラグイン/データベース の互換性
* ASP プラグインは ADO を、.netプラグインは ADO.net を使用するので、
ADO と互換性があるどんなデータソースにも接続することができるはずです。
LiveGrid は AJAX テクノロジーを使うので、 一度にクライアントへ送る SQL クエリの実行結果は一部だけです。 ユーザーが格子をスクロールすると、 JavaScript コードはクエリの結果のどの部分が必要とされているかについて決定し、 AJAX リクエストをプラグインに送り返します。 プラグインはそれらの結果をデータベースから検索して、それらをクライアントに返します。 なので、クエリが返す結果が 10 行か 100,000 行かに関係なく、 LiveGrid はインタラクティブなユーザインタフェースで迅速かつ容易に結果を表示する事ができます。
最後に、もしユーザーがデータの変更を許されているならば、Rico プラグインは、それさえも簡単にします。 単に LiveGrid Forms を使っているグリッドを定義して下さい -- レコードセレクションの追加、編集、そして削除は、グリッドのコンテキスト(ポップアップ)メニューから追加されます。
LiveGrid にデータをロードするのがプラグインで簡単になっている間は、それらは必要ではありません。 データがこの形式に従う限り、どんなソースからも LiveGrid のバッファを XML データにロードする事が出来ます。
<ajax-response> <response type='object' id='MyGridId_updater'> <rows update_ui='true' offset='0'> <tr><td>Data for row 1, cell 1</td><td>Data for row 1, cell 2</td></tr> <tr><td>Data for row 2, cell 1</td><td>Data for row 2, cell 2</td></tr> </rows> </response> </ajax-response>天気と写真の実例を見てください、それぞれ Yahoo 天気情報と Flickr からデータを検索して、上記のデータ構造に再フォーマットしています。 これらの実例は、現在、、ASP では無く PHP と .net のバージョンで利用できます。
LiveGrid は伝統的な HTML テーブルを持つウェブページの上で簡単に作る事も出来ます。 単に ID をテーブルに割り当てて、LiveGrid の初期化中に、そのIDを渡してください。 テーブルの thead セレクションと tbody のデータから見出しは取得する事が出来ます。 この場合 AJAX は実行されませんが、データは JavaScript 配列でまだバッファリングされます。 いくつかの実例は Rico ディストリビューションに含まれますので、 "LiveGrid-Static Buffer" と印されている物を探して下さい。
SimpleGrid は Rico 2.0 にとって新しく、LiveGrids と同じ機能のいくらかを共有します - リサイズ可能な列、固定された列と固定された見出し。 しかしながら、LiveGrid と異なり、データは静的であり DOM に存在します - それゆえに、バッファリング、AJAX リフレッシュ、ソート、フィルタリングの機能がありません。 なぜ、SimpleGrid を使うのでしょうか?
SimpleGrid の最も洗練された例は、ディストリビューションに含まれているスプレッドシートです。 式を入力する事ができ、入力値を変更すると、それは再計算されるでしょう - まさしく商業スプレッドシートのように。 実例のメニューの "HTML Examples" のセクションでスプレッドシートへのリンクを見つけることができます。 スプレッドシートで、 ボタンをクリックして、それができるすべてを見て下さい。
SimpleGrids は、次の 2 つの方法で作成する事が出来ます。
各プラグインは SimpleGrid のクラスを定義します。 クラスの中に、ヘッダ行とデータ行を始めるメソッドがあります。 - HTML テーブル内のどこかに <tr> タブを置いて、それらのメソッドの内の一つを呼ぶだけです。 また、セルを作成するメソッドもあります。 - HTML テーブル内のどこかに <th> タブか <td> タブを置いて、それを呼ぶだけです。 テーブルの内容を定義し終わったら、描画メソッドを呼ぶだけです。 (.net プラグイン以外では描画は自動的に行われます) それは、とても簡単です!
ウェブページが XHTML 対応であるならば、SimpleGrid を生成するもう一つの方法があります。 ページ上のテーブルを SimpleGrids に変換するために、XSL スタイルシートである "ricoSimpleGrid.xsl" を使うだけです。 スタイルシートは "ricoSimpleGrid" のクラス名でテーブルを探して、それから変換を行います。 一時は、Rico はクライアント上でこの変換をサポートしていました。 しかしながら、Prototype ライブラリの変更のために、すでに出来なくなりました。 したがって、このアプローチで行う方を選ぶならば、 XSLT 変換はサーバーで実行されなければなりません。