以编程方式选择 Kendo 网格行

2023-12-26

我找到了类似标题的帖子,但仍然无法解决我的问题。我肯定做错了什么。

在 Kendo 网格配置中,有一些函数可以获取上下文(网格)并读取所选行:

change: function (e) {
            refresh(this);
        }

这就是我配置“更改”事件的方式。

在函数“刷新(网格)”中,我通过以下方式获取选定的行:

    refresh: function (grid) {        
    var selectedRows = grid.select();
    var selectedRow = grid.dataItem(selectedRows[0]);
    var id = selectedRow.Id;
}

当我手动选择网格行时,这种方法非常有效。但是当我以编程方式选择行时,“selectedRow”变量为空。

我正在通过以下方式以编程方式选择:

var grid = $("#grid").data("kendoGrid"); 
var rows = grid.dataSource.data(); 
var row = rows[rows.length - 1]; 
grid.select(row);

正如我在上面所说的那样,在之前的“refresh(grid)”方法中,变量 selectedRow 将为 null。

有人对此有什么看法吗?为什么会发生这样的事呢?

Thanks


根据网格文档"select" http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#methods-select方法接受“字符串”参数(选择器)或 jQuery 元素。这就是为什么如果您需要正确选择行,您应该修改当前代码,如下所示:

var grid = $("#grid").data("kendoGrid"); 

//if you are using the "pageable" option of the grid
//you should get the visible rows using the .view() method
var models = grid.dataSource.data();

var model = models[models.length - 1]; 
var lastRowUid = model.uid;

//find the target row element:
var row = grid.table.find("[data-uid=" + lastRowUid + "]");

grid.select(row);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式选择 Kendo 网格行 的相关文章

随机推荐