Dgrid - OnDemandGrid中的rowIndex

时间:2013-07-26 04:11:18

标签: dojo dgrid

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

1 个答案:

答案 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等)从这里找出它。