剑道网格,在dataBound调用中访问原始绑定行

Kendo Grid, in dataBound call accessing original bound line

本文关键字:访问 原始 绑定 调用 dataBound 网格      更新时间:2023-09-26

在剑道ui网格中,在dataBound调用中,您可以使用以下访问原始数据

e.sender.dataSource._data

这看起来只供内部使用,并且它不会告诉你哪个数据行用于生成当前行

我的问题是,有什么可以访问这个调用中的原始数据吗?

我能想到两种方法,但都不是理想的

(1) 将一些数据粘贴到单元格中,并使用以下进行访问

var rows = this.tbody.find("tr.k-master-row");
var innerHTML = row.cells[row.cells.length -1].innerHTML;

你可以在这里放一个Guid,然后用它来查找原始行

(2) 如上所述,但json对其进行编码,以便获得要处理的对象,json对象将包含所需的所有

有更好的方法吗?

顺便说一句,我想完成什么?我绑定到的行有一个行的重写cssclass,它控制行的tds样式。我正在dataBound调用中设置它。可能有更好的方法来完成这个

感谢


OnaBai已经回答了这个问题,具体情况如下。注意:我并不是说这是最好的方法,在我的具体例子中,它只是更容易

dataBound: function(e) 
{
    for(var i=0; i<rows.length; i++)
    {
        var row = rows[i];
        var dataSourceRow = this.dataSource.getByUid($(row).attr("data-uid"));
        $(row).addClass(dataSourceRow.RowCssClass);
    }
}

实际上存在这样的GUID。每一行都有一个名为uid的唯一id字段,该字段在模型中可以通过uid成员访问,也可以通过执行row.attr("data-uid")或使用jquery.data在HTML级别访问。

所以,如果你有你的行元素,它会像这样:

var item = this.dataSource.getByUid($(row).data("uid"));

或者即使row已经是jQuery对象,那么:

var item = this.dataSource.getByUid(row.data("uid"));