Rico SimpleGrid の作成

SimpleGrid は Rico 2.0 で追加され、LiveGrids と同じ機能のいくらかを共有します - リサイズ可能な列、固定された列と固定された見出し。 しかしながら、LiveGrid と異なり、データは静的であり DOM に存在します - それゆえに、バッファリング、AJAX リフレッシュ、ソート、フィルタリングの機能がありません。 なぜ、SimpleGrid を使うのでしょうか?

SimpleGrids は、次の 2 つの方法で作成する事が出来ます。

  1. SimpleGrid プラグインの中の 1 つを用いて。PHP、ASP と .net のためのプラグインが存在します。
  2. XSLTを用いて。Rico は、標準的なHTMLテーブルを SimpleGrid に変換する XSL ファイルを持っています。

利用モデル 1: SimpleGrid プラグインの利用

このセクションは、Rico ディストリビューションに含まれる simplegrid.php/asp/aspx の実例について記述します

利用モデル 2: XSLT 変換の利用

ウェブページが XHTML 対応であるなら、ページ上の標準的な html テーブルを、 "ricoSimpleGrid.xsl" XSL スタイルシートを利用した SimpleGrid にする事が可能です。 一時、Rico はクライアントでこの変換をする事をサポートしていました。 しかし、Prototype ライブラリの変化により、これは既に可能でありません。 したがって、このアプローチを使う方を選ぶなら、XSLT 変換は 必ず サーバで実行されなければなりません。 サーバサイド変換を行うインストラクション。

この変換は "ricoSimpleGrid" クラスでテーブルをコンバートするだけです。

<table id='test1' class='ricoSimpleGrid'>

固定された列の見出しは、 <th> タグに class="ricoFrozen" を持たなければなりません。 複合見出し行があるならば、メインの見出し行は "_main" で終わる id を持たなければなりません (これは、リサイズハンドルを表示する行です)。 その変換は、テーブルの <thead> セクションでグリッドの見出しを探します。 thead セクションが存在しないなら、その変換はテーブルの最初の行が見出し列であると仮定します。

<table id="test1" class="ricoSimpleGrid">

  <thead>
     <tr id="customer_livegrid_main">
        <th class="ricoFrozen">ID</th>
        <th>Customer</th>
        <th>Address</th>
        <th>City</th>
     </tr>
  </thead>

  <tbody>
    <!-- grid data -->
  </tbody>
</table>

最後に、SimpleGrid javascript オブジェクトは、CDATA セクションで宣言と初期化が行われなければなりません。 ricoInit() の呼び出しは、XSLT 変換によって生成されます。

<script type="text/javascript">
//<![CDATA[

function ricoInit() {
  try {
  Rico.loadModule('SimpleGrid');
  Rico.onLoad(ricoInit2);
  } catch(e) { alert(e.message); }
}

var grid1
function ricoInit2() {
  try {
  grid1=new Rico.SimpleGrid ('test1',{maxHt:180});
  } catch(e) { alert(e.message); }
}
//]]>
</script>

リファレンス

コンストラクタ


  var grid = new Rico.SimpleGrid (table_id, grid_options);

オプション

一般的なオプション

frozenColumns
グリッドの左側の固定された列の数(デフォルトは 0)
maxHt
SimpleGrid の高さの最大ピクセル(デフォルトは null)
windowResize
window.resize イベントでグリッドをリサイズしますか? アコーディオンに埋め込まれる時は false を設定して下さい(デフォルトは true)
useUnformattedColWidth
グリッドの構成時に、html テーブルの列幅を利用しますか?(デフォルトは true)
scrollBarWidth
実際にはスクロールバーの幅を変えず、位置決めで使用されます。(デフォルトは 19)
minScrollWidth
固定された列の幅がクライアントウィンドウの幅を上回る時、 スクロールしている列の幅の合計がどのくらい広がるべきですか?
highlightElem
グリッドで何がハイライトされますか。取り得る値は。
exportWindow
ユーザがグリッドからデータをエクスポートする時 window.open() に渡されるオプション文字列。 (デフォルトは "height=300,width=500,scrollbars=1,menubar=1,resizable=1")

画像

resizeBackground
列のリサイズハンドルに利用される画像(デフォルトは 'resize.gif')
sortAscendImg
列を昇順でソートする事を示すために使われる画像(デフォルトは 'sort_asc.gif')
sortDescendImg
列を降順でソートする事を示すために使われる画像(デフォルトは 'sort_desc.gif')

メニューとイベントハンドリングオプション

contextmenu
ユーザがグリッドのセル上で右クリックした時に取る行動(デフォルトは null)
menuEvent
メニューのトリガーイベント。取り得る値は。
click
ユーザがグリッドのセル上でシングルクリックした時に取る行動(デフォルトは null)
dblclick
ユーザがグリッドのセル上でダブルクリックした時に取る行動(デフォルトは null)

クッキーオプション

saveColumnInfo
グリッドのクッキーに、どの詳細設定を保存するかを指定します。 一つのクッキーだけが、それぞれのグリッドのために利用されます。 幅の設定が、列の非表示/表示の状態を含む事に注意して下さい。(デフォルトは {width:true, filter:false, sort:false})
cookiePrefix
クッキー名の先頭に付け加えられる文字列(デフォルトは 'RicoGrid.')
cookieDays
数字の日数前のクッキーは期限切れになります。 指定しなければ、クッキーは現在のセッションの間だけ維持されます。(デフォルトは null)
cookiePath
グリッドのクッキーを読む事が出来るトップレベルディレクトリを設定します。 指定しなければ、それはクッキーを設定するページのパスになります。(デフォルトは null)
cookieDomain
クッキーがどのドメインに送られなければならないかについて、ブラウザに知らせます。 指定しなければ、それはクッキーを設定するページのドメインになります。(デフォルトは null)

デフォルトの列

これらのアイテムはそれぞれ、 columnSpecs オプションによって、列ごとのベースにオーバーライドする事が出来ます。
canSortDefault
列はデフォルトでソート可能ですか?(LiveGrid のデフォルトは true、SimpleGrid のデフォルトは false)
canFilterDefault
列をフィルタする事が出来ますか? (LiveGrid のデフォルトは RicoBuffer.options.canFilter、SimpleGrid のデフォルトは false)
canHideDefault
列を 表示/非表示 する事が出来ますか?(デフォルトは true)
allowColResize
ユーザによる列のリサイズを許しますか? (デフォルトは true)
defaultWidth
それぞれの列のデフォルトのピクセル幅

列ごとの構成

各々の列のためのオプションは、columnSpecs オプションに含まれます。 columnSpecs は、各々の列のためのエントリに関する配列です。 各々の列のエントリは、以下のいずれかで行う事が出来ます。

ここに、列 0、1 と 3 が仕様を含む例を挙げます。

columnSpecs : [{noResize:true, ClassName:'alignright'},
               {ClassName:'aligncenter'},
               ,
               {visible:false}]
canHide
列を 表示/非表示 する事が出来ます。(デフォルトは grid.options.canHideDefault)
visible
列は、初めは隠されていません。 grid.options.saveColumnInfo.width が true で、列のためのクッキーに値があるなら、クッキーの値が優先されます。 (デフォルトは true)
width
列の初期幅。 grid.options.saveColumnInfo.width が true で、列のためのクッキーに値があるなら、クッキーの値が優先されます。 (デフォルトは grid.options.defaultWidth)
noResize
列のリサイズを許しますか?(デフォルトは grid.options.allowColResize)
ClassName
必要に応じて、これを 'alignright' または 'aligncenter' にセットして下さい - 例を見て下さい。 これが見出しを整列しない事に注意して下さい - ヘッダの整列を達成するためには、<th> タグで align="right" を利用して下さい。 (デフォルトは table_id + '_col' + column_index)