在 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"));
我不确定我是否了解您的需求。如果您想要<td>
元素,可以尝试以下操作: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 网格更改事件上获取单击的单元格的主要内容,如果未能解决你的问题,请参考以下文章
Kendo UI Grid:如果有任何未决更改,则无法拦截和取消排序事件
在 kendo ui 网格中以编程方式更改 serverSorting
单击用于 MVC 的 kendo ui 网格中的单元格时需要行索引和列标题