专注于剑道网格中第二页的单元格

时间:2015-11-24 13:51:25

标签: kendo-grid

我需要使用“下一个错误”按钮将焦点放在kendo-Grid上的错误单元格中。

但我正面临着将重点放在细胞上的问题。如果错误单元格位于kendo网格的第二页。

我的代码:

function nextErr(){

var grid = angular.element('#myGrid').data('kendoGrid');
var dataItems = grid.dataSource.data();
var index;
var uid;
for(var i=0; i < dataItems.length; i++){
    if(!isNullOrUndefined(dataItems[i].errors)
        && !angular.element.isEmptyObject(dataItems[i].errors)){
        index = i;
        uid = dataItems[i].uid;
        break;
    }
}
var errorCell = angular.element("tr[data-uid='"+ uid +"'] td[data-err-msg != 'undefined']")[0];
grid.editCell(errorCell);

}

如果有人实施了类似的内容,请告诉我们

1 个答案:

答案 0 :(得分:0)

对于类似的问题,我使用了来自Kendo UI Grid select by data item的想法。这是我自己稍微修改过的函数,用于在网格中查找dataItem。

function findDataItem(dataSource, dataItem) {
    if (!dataItem) {
        return null;
    }

    var view = kendo.data.Query.process(dataSource.data(), {
        filter: dataSource.filter(),
        sort: dataSource.sort()
    }).data;

    var index = -1;
    // find the index of the matching dataItem
    var ID = 'YOUR_ID_FIELD_NAME';
    for (var x = 0; x < view.length; x++) {
        if (view[x][ID] == dataItem[ID]) {
            index = x;
            break;
        }
    }

    if (index === -1) {
        return null;
    }
    var page = Math.floor(index / dataSource.pageSize());
    var targetIndex = index - (page * dataSource.pageSize());

    return {
        page: ++page,
        index: targetIndex,
    }
}

然后,您可以使用返回的page在网格dataSource.page(page)中显示相应的网页。

希望有所帮助。