在 kendo ui 网格更改事件上获取单击的单元格

Posted

技术标签:

【中文标题】在 kendo ui 网格更改事件上获取单击的单元格【英文标题】:Get clicked cell on kendo ui grid change event 【发布时间】:2014-07-20 16:40:38 【问题描述】:

我正在处理剑道用户界面网格的更改事件。

在事件处理程序中,我想获取调用更改事件的单击单元格。我需要该单元格才能扫描其内容。

有什么想法吗?

【问题讨论】:

你可以在下面的链接***.com/a/38847739/3327597找到答案 【参考方案1】:

它实际上在文档中有很好的记录:http://docs.telerik.com/kendo-ui/api/web/grid#events-change

如果您将网格配置为多个单元格选择 (selectable: "multiple, cell"),以下是示例代码:

change: function(e) 

    var item;        
    var selected = this.select();    //get selected cell(s)

    for (var i = 0; i < selected.length; i++) 
            item = this.dataItem(selected[i].parentNode);    //get selected cell's dataItem
    

【讨论】:

谢谢。我看过那个例子,但它没有返回单元格。我看到您添加了 parentNode,但 parentNode 返回正文。 this.dataItem(of body) 返回未定义。 我的代码与parentNode 配合得很好,我可以通过这种方式获取数据项。获得它的另一种方法是item = this.dataItem(selected[i].closest("tr")); 我不确定我是否了解您的需求。如果您想要&lt;td&gt; 元素,可以尝试以下操作:selected[i].outerhtml【参考方案2】:

要选择点击编辑的表格单元格,只需使用e.container。事件处理程序提供了许多选项。这里有一些:

change: function (e) 

    //jQuery object containing the cell 
    var cell = e.container;

    //jQuery object containing the input 
    var field = cell.find("input");

    //value in the input
    var fieldVal = field.val();

    //or, on one line:
    fieldVal = e.container.find("input").val();

    //also, if you happen to want the data model for that row
    var model = e.model;

【讨论】:

以上是关于在 kendo ui 网格更改事件上获取单击的单元格的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 MVC 网格单元的 Kendo UI 的背景颜色

Kendo UI Grid:如果有任何未决更改,则无法拦截和取消排序事件

在 kendo ui 网格中以编程方式更改 serverSorting

单击用于 MVC 的 kendo ui 网格中的单元格时需要行索引和列标题

Kendo ui - 在子添加/编辑时获取父网格项(网格层次结构)

Kendo UI:有条件地阻止工具提示显示在网格单元格上