kendo-ui - Kendo UI Grid : Select single cell,取回DataItem,并防止选择特定的单元格?

标签 kendo-ui telerik kendo-grid

我有一个Kendo UI Grid,它显示一组数据,我需要能够选择特定的单元格(特定列中的单元格),并且在选择后,返回所选单元格所在行的DataItem以及被点击的那个DataItem。我不知道这是否可行,但是我整天都在努力,得出的结论是我需要一些帮助。

这是我的grid和dataBound函数,当前可以获取我的DataItem,仅此而已:

    var hhGrid = hhDiv.kendoGrid({
        dataSource: housing,
        scrollable: false,
        sortable: true,
        selectable: 'cell',
        columns: [
            { field: "Start", title: "Start", format: "{0:MM/dd/yyyy}", type: "date" },
            { field: "Stop", title: "Stop", format: "{0:MM/dd/yyyy}", type: "date" },
            { field: "Facility" },
            { field: "Area" },
            { field: "Pod" },
            { field: "Cell" },
            { field: "Comment" }
        ]
    }).data('kendoGrid');

    hhGrid.bind('change', grid_change);

function grid_change(e) {
    var selectedCells = this.select();
    var dataItem = this.dataItem(selectedCells[0].parentNode);
}

因此,首先,是否有一种方法可以“关闭”网格定义中特定列的选择?我找不到任何有关此操作的信息。我只希望用户能够在“区域”,“ Pane ”和“单元格”列中选择单元格。如果他们单击其他列,则不会发生任何事情。另外,当他们确实单击那些选定的单元格时,我想获取该单元格所在行的DataItem(我目前可以使用该grid_change方法进行操作),所选列或该属性中的属性。所选的DataItem。

因此,例如,如果用户单击“Pod”单元格,我想知道单击的是Pod单元格,以及该单元格所在行的其他数据。似乎所有数据都在那里,所以应该没有那么困难,但是我真的很难找到实现此目标所需的数据。

谢谢你的帮助!

最佳答案

获取数据项是:

// Get selected cell
var selected = this.select();
// Get the row that the cell belongs to.
var row = this.select().closest("tr");
// Get the data item corresponding to this cell
var item = grid.dataItem(row);

为了获得列名,您可以这样做:
// Get cell index (column number)
var idx = selected.index();
// Get column name from Grid column definition
var col = this.options.columns[idx].field;

获取与列关联的字段的另一种方法是:
// Get column name from Grid column header data
var col = $("th", this.thead).eq(idx).data("field");       

好处是列是可排序的,这无论如何都会起作用。
为了清除对不需要的列的选择,只需要调用clearSelection()即可。
if (col !== 'Area' && col !== 'Pod' && col !== 'Cell') {
    this.clearSelection();
}

在此处检查一个示例:http://jsfiddle.net/OnaBai/m5J9J/1/和此处:http://jsfiddle.net/OnaBai/m5J9J/2/(使用列标题获取列名)

关于kendo-ui - Kendo UI Grid : Select single cell,取回DataItem,并防止选择特定的单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24273432/

相关文章:

javascript - 简单的 Kendo 网格单元格模板以无包装方式显示单元格数据,结尾为 '...' 和一个按钮

javascript - 将 MQTT NPM 模块导入 NativeScript

angularjs - Kendo UI 网格下拉菜单和 Angular

kendo-ui - Kendo Grid 数据源刷新在 IE 中不起作用

javascript - 克隆kendo DataSource会删除CRUD吗?

backbone.js - Kendo UI与 Backbone js

css - Kendo 对话框未扩展到 bootstrap 4 表单组的宽度

javascript - Kendo Grid EditorTemplateName - 客户端绑定(bind)

javascript - 如何在调度程序弹出窗口中检索事件的颜色?

telerik - ASP.NET MVC2 富文本编辑器