2

我正在使用带有 JSONRest 存储的 OnDemandGrid virtuall 滚动。

         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。有人能告诉我如何找到行索引吗?

4

1 回答 1

1

Selection您可以使用dGrid 提供的 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...
                }
            }

这些都没有专门为您提供行索引,但您可以使用浏览器的开发工具(例如,Firefox 的 Firebug 等)从这里找出它。

于 2013-07-29T15:23:27.387 回答