Kendo Grid,在dataBound调用中访问原始绑定行

时间:2014-09-09 12:23:10

标签: javascript kendo-ui telerik kendo-grid telerik-grid

在一个kendo 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已经回答了这个问题,这里有具体细节。 NB我不是说这是一般的最佳方式,在我的具体例子中它更容易

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);
    }
}

1 个答案:

答案 0 :(得分:1)

实际上有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"));