wijmo.grid 名前空間 > wijgrid タイプ : columns メソッド |
Javascript (Usage) | |
---|---|
$(function () { var returnsValue; //タイプ: any returnsValue = $(".selector").wijgrid("columns"); }); |
Javascript (Specification) | |
---|---|
|
var colWidgets = $("#element").wijgrid("columns");
wijgrid の列はウィジェットとして表されます。このメソッドは、可視列ヘッダにバインドされたウィジェットの 1 次元配列を返します。列ウィジェットは、wijgrid.options.columns 配列の対応する項目から取得された値で初期化されます。
ただし、列ウィジェットインスタンスのオプションは、オリジナルのオブジェクトではなくウィジェットファクトリーによって作成されたコピーを参照します。そのため、wijgrid.options.columns オプションに加えた変更は列ウィジェットのオプションに自動的に伝播されず、その逆も同様です。
この問題を解決するため、wijgrid は列ウィジェットのオプションの値をソース項目と同期します。この同期化は、何らかのアクションによって wijgrid の再描画が必要となるたびに自動的に呼び出される ensureControl() メソッドの内部で行われます。
それでもまだ欠点があります。たとえば、次の間違ったサンプルのようにユーザーコードから wijgrid のデータをフィルタリングしたい場合があります。
$("#element").wijgrid("option", "columns")[0].filterValue = "newValue"; $("#element").wijgrid("ensureControl", true); // データを再形成して wijgrid をレンダリングし直します。
上記のサンプルでは、同期化中にユーザー変更が無視されるので、何も起こりません。列ウィジェットの filterValue を変更する必要があります。そのためには、次のように columns() メソッドを使用します。
$("#element").wijgrid("columns")[0].options.filterValue = "newValue"; $("#element").wijgrid("ensureControl", true); // データを再形成して wijgrid をレンダリングし直します。
filterValue を変更する最良の方法は次のとおりです。
$("#element").wijgrid("columns")[0].option("filterValue", "newValue"); // 列ウィジェットが必要なすべてのことを処理します。