是否可以使用複選框支持的Dojo dgrid窗口小部件(與數據存儲相對)來選擇行?使用Dojo dgrid與沒有存儲的選擇器列插件?
我成功地啓動了一個基本的數組備份dgrid,然後添加了Selection mixin以啓用行選擇。所以現在我有一個由數組支持並允許行選擇的dgrid。但是,當我嘗試通過selector column plugin添加複選框時,出現以下錯誤: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);
}
);