如果剑道网格的第一页上没有该行,该如何选择剑道网格. [英] How to select kendo grid row if that row is not present on first page of the kendo grid./

查看:106
本文介绍了如果剑道网格的第一页上没有该行,该如何选择剑道网格.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

试图在dataBound中选择一个剑道网格行(注意:该行不在网格的第一页上),但是没有选择第三页行.

Tried to select a kendo grid row in dataBound (Note: that row is not on first page of the grid) but it didn't selected 3rd page row.

dataBound: function(e) {
            if (id!== "" && id!== undefined && id!== null) {
                var grid = e.sender;
                grid.select("tr:contains('" + id + "')");
            }
        },

这里的id在页面URL中,并获得ids值,如下所示:这将在dataBound id var中传递.

Here id is in the page URL and getting ids value like below: and that will get passed in dataBound id var.

id = $location.search().id;

任何想法如何选择第三页行?上面的逻辑适用于剑道网格首页上出现的行

Any ideas how i can select the 3rd page row? Above logic works for the rows that are present on first page of the kendo grid

尝试选择第三页行时,它仅停留在第一页上,因为该行属于网格的第三页,因此未选择任何内容.

When tried selecting 3rd page row, it stays at first page only with nothing selected since that row belongs to third page of the grid.

推荐答案

下面的函数用于查找dataItem和选择任何页面行.

Below function is for finding dataItem and selection of any page row.

Var initial阻止数据绑定在第一次调用后被调用.

Var initial prevents the databound to get called after first call.

function findDataItem(ragGrid, dataItem) {
        initial = true;
        var ds = ragGrid.dataSource;
        var view = window.kendo.data.Query.process(ds.data(), {
            filter: ds.filter(),
            sort: ds.sort()
        }).data;
        var index = -1;
        for (var x = 0; x < view.length; x++) {
            if (view[x].Id == dataItem.Id) {
                index = x;
                break;
            }
        }
        if (index === -1) {
            return;
        }
        var page = Math.floor(index / ragGrid.dataSource.pageSize());
        var targetIndex = index - (page * ragGrid.dataSource.pageSize())+ 1;
        ragGrid.dataSource.page(++page);
        var row = $("#ragGrid").find("tr:eq(" + targetIndex + ")");
        ragGrid.select(row);
    }

这是dataBound函数,并在dataBound的第一次调用中调用findDataItem.

Here is the dataBound function and calling findDataItem in dataBound first call.

  dataBound: function (e) {
            if (id !== "" && id !== undefined && id !== null) {
                if (!initial){
                var grid = e.sender;
                var data = grid.dataSource.data();
                var res = $.grep(data, function (d) {
                    return d.Id == id;
                });
                findDataItem(grid, res[0]);
                }
            }
        },

这篇关于如果剑道网格的第一页上没有该行,该如何选择剑道网格.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆