Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以编程方式选择剑道网格行_Javascript_Jquery_Kendo Ui - Fatal编程技术网

Javascript 以编程方式选择剑道网格行

Javascript 以编程方式选择剑道网格行,javascript,jquery,kendo-ui,Javascript,Jquery,Kendo Ui,我找到了类似标题的帖子,但我仍然无法解决我的问题。我肯定做错了什么 在剑道网格配置中,有一些函数可以获取上下文(网格)并读取所选行: change: function (e) { refresh(this); } 这就是我配置“更改”事件的方式 在函数“刷新(网格)”中,我通过以下方式获取所选行: refresh: function (grid) { var selectedRows = grid.select();

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

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

change: function (e) {
            refresh(this);
        }
这就是我配置“更改”事件的方式

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

    refresh: function (grid) {        
    var selectedRows = grid.select();
    var selectedRow = grid.dataItem(selectedRows[0]);
    var id = selectedRow.Id;
}
var grid = $("#grid").data("kendoGrid"); 
var rows = grid.dataSource.data(); 
var row = rows[rows.length - 1]; 
grid.select(row);
当我手动选择网格行时,这种方法非常有效。但当我以编程方式选择行时,“selectedRow”变量为空

我按以下方式进行编程选择:

    refresh: function (grid) {        
    var selectedRows = grid.select();
    var selectedRow = grid.dataItem(selectedRows[0]);
    var id = selectedRow.Id;
}
var grid = $("#grid").data("kendoGrid"); 
var rows = grid.dataSource.data(); 
var row = rows[rows.length - 1]; 
grid.select(row);
正如我在上面提到的,在前面的“刷新(网格)”方法中,selectedRow变量将为null

有人对此有什么看法吗?为什么会这样


谢谢

根据网格文档,该方法接受“字符串”参数(选择器)或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);

谢谢,只需要更改行[rows.length-1];到模型[rows.length-1];