我正在使用带有JSONReststore的On Demand Grid虚拟滚动。
require([
"dojo/request",
"dojo/store/Memory",
"dgrid/OnDemandGrid",
"dojo/store/JsonRest"
], function (request, Memory, OnDemandGrid,JsonRest) {
var jsonstore = new JsonRest({target: url , idProperty: "id"});
// Create an instance of OnDemandGrid referencing the store
var grid = new OnDemandGrid({
store: jsonstore,
columns: Layout,
minRowsPerPage : 40,
maxRowsPerPage : 40,
loadingMessage: "Loading data...",
noDataMessage: "No results found."
}, "grid");
grid.startup();
});
我不知道如何获取单元格的rowIndex。 有人能告诉我如何找到行索引吗?
答案 0 :(得分:1)
您可以使用dGrid提供的Selection
mixin找到您要查找的内容。使用Selection
,您可以像这样定义网格:
grid = new (declare([OnDemandGrid, Selection]))({
store: Observable(Memory({ // replace with your store of choice
idProperty: 'id'
})),
columns: { /* your columns layout */ },
noDataMessage: 'No results found.',
loadingMessage: 'Loading data...'
});
grid.startup();
在您的columns对象中,您可以定义一个使用名为renderCell
的函数的列,如下所示:
renderCell: function (object, value, node, options) {
// Object is the row; i.e., object's properties are the column names
// value is the value for this cell
// node is the DOM node of this cell
// Not sure what 'options' refers to
}
选择行时,可以使用grid.selection
属性检索行,该属性是包含键/值对的对象,其中ID(基于idProperty
)是键。每个键的值包含一个布尔值,指示是否选择了该特定行。因此,要获得每个选定的行,您可以执行以下操作:
for (selectedId in selection) {
if (selection.hasOwnProperty(selectedId) && selection[selectedId] === true) {
var selectedRow = grid.row(selection[selectedId];
... // and so on...
}
}
这些都没有专门为您提供行索引,但您可以使用浏览器的开发工具(例如Firebug for Firefox等)从这里找出它。