kendoGrid 选中上一行、下一行

[2017-12-20]

    var grid = $("#gridMaster").data("kendoSmartGrid");    

    grid.select(grid.select().next());                  // 選中當前行的下一行
   
    这种写法的好处就是不用考虑Grid Header的行数,也不用关心select()取索引由0开始,select()选中索引由1开始等部问题

[2017-12-19]

    var grid = $("#gridMaster").data("kendoSmartGrid");

    var row = grid.select();                               // 取當前行。 注意:select()取索引由  0 開始
    var grid_header_row = 1;                               // Grid Header 的行數
    var idx = 1 + grid_header_row + row.index() + 1;       // 下一行索引(下一行 = 1(兩個select()的差異數) + [Grid Header 的行數] + [當前行索引] + 1)
    //或
    //var idx = 1 + grid_header_row + row.next().index();

    grid.select("tr:eq(" + idx + ")");                    // 選中下一行。注意:select()選中行,由開始并且要加上Grid Header的行數


来个完整的方法

    moveRow: function (move) {
        var that = this;
        var grid = $("#gridMaster").data("kendoSmartGrid");
        var len = grid._data.length;
        var row = grid.select();

        //因為index是從0開始,而grid.select()是從1開始,所以select時的index需要加1
        if (move == "up") {
            var rowIndex = row.prev().index() + 1;
            if (rowIndex == 0) {
                myUI.showMsg('已到頂行!', "系統提示", "ok", "warning", null);
                grid.select('tr:eq(1)');
            }
            else {
                grid.select('tr:eq(' + rowIndex + ')');
            }
            return that.returnData();
        }
        if (move == "down") {
            var rowIndex = row.next().index() + 1;
            if (rowIndex == 0) {
                myUI.showMsg('已到最後一行!', "系統提示", "ok", "warning", null);
                grid.select('tr:eq(' + len + ')');
            }
            else {
                grid.select('tr:eq(' + rowIndex + ')');
            }
            return that.returnData();
        }
    },

    returnData: function () {
        var grid = $("#gridMaster").data("kendoSmartGrid");
        var row = grid.select();
        var dataItem = grid.dataItem(row);
        return dataItem;
    }


你可能感兴趣的:(Kendo)