行を選択するためのチェックボックスを備えた(データストアではなく)配列に裏打ちされたDojo dgridウィジェットを使用することは可能ですか?
基本的な配列に裏打ちされたdgridから始めて、行選択を有効にするためにSelectionミックスインを追加しました。これで、配列に支えられて行を選択できるdgridができました。ただし、セレクター列プラグインを介してチェックボックスを追加しようとすると、エラーが発生します。this.store is undefined.
this.storeは、選択された行を識別するために使用されると判断しました。グリッドの選択を照会したときに返される結果に直接相関するthis.store.getIdentity(rowObject)メソッドへの呼び出しがいくつかあります。
ストアの代わりにオブジェクトの配列を使用する場合、選択した行を識別するために特定の列フィールドを指定することは可能ですか?以下のコードのWORKAROUND_STOREはこれを効果的に実行しますが、次のようなプロパティを設定するような単純な解決策が欠落している可能性selector({idProperty: 'col1'}).
があります。
require(["dgrid/Grid",
"dgrid/selector",
"dgrid/Selection",
"dojo/_base/declare"],
function(Grid, selector, Selection, declare){
var columns = {
col1: selector({}),
col2: {label: 'COL2'},
col3: {label: 'COL3'},
};
var data = [
{ col1: '1', col2: 'A', col3: 'I'},
{ col1: '2', col2: 'B', col3: 'II'},
{ col1: '3', col2: 'C', col3: 'III'}
];
WORKAROUND_STORE = {
getIdentity: function(item) { return item.col1 }
}
var SelectionGrid = declare([Grid, Selection]);
window.methodGrid = new SelectionGrid({
store: WORKAROUND_STORE,
columns: columns,
selectionMode: "none",
allowSelectAll: true
}, "methodGridDiv");
window.methodGrid.renderArray(data);
}
);