我正在体验 Kendo UI 框架的边缘案例。具体来说,我正在使用Kendo Web UI API 文档中记录的Grid 'Select' 方法。
var gridWibble= $("#gridWibble").data("kendoGrid");
gridWibble.select("td:eq(0)");
var gridShizzle= $("#gridShizzle").data("kendoGrid");
gridShizzle.select("td:eq(0)");
出于交流的目的,我将其gridWibble
称为第一个网格,因为它首先定义并首先出现在 DOM 中。我将gridShizzle
称为第二个网格,因为它在 DOM 中被定义为第二个并且位于第二个。两个网格都是使用正确的(和不同的)ID 创建的,并且存在于 DOM 中。显然,我有两个网格,具有不同的 ID,它们的功能与预期不同,如下所示。
当我尝试在第二个网格中选择一个单元格时,如上面的(最后两行)代码所示,它会在第一个网格(gridWibble)中进行选择。也就是说,它选择了正确的单元格,但在不正确的网格中这样做。显然我期待它在第二个网格(gridShizzle)中进行选择。顺便说一句,gridWibble 选择代码按预期工作。
如果我从 DOM 中删除第一个网格(例如使用 Chrome 开发人员工具)并在控制台中运行相同的代码,它会成功选择适当(且唯一)网格中的适当单元格gridShizzle
。唯一的区别是现在 DOM 中只有一个网格。
在同一页面上使用两个剑道网格并使用网格选择 API 方法时,其他任何人都可以复制吗?
编辑 1
gridWibble= $("#gridWibble").kendoGrid({ dataSource: { type: "json", data: gridWibbleData, autoSync: true, pageSize: 500, serverPaging: false, serverFiltering: false, serverSorting: false }, columns : [ { field: "Pair", title: "Pair"}, { field: "D1", title: "1d"}, { field: "D5", title: "1w (5d)"}, { field: "D10", title: "2w (10d)"}, { field: "D20", title: "1m (20d)"}, { field: "D40", title: "2m (40d)"}, { field: "D60", title: "3m (60d)"}, { field: "D120", title: "6m (120d)"}, { field: "D240", title: "12m (240d)" } ], toolbar: kendo.template($("#gridWibbleTemplate").html()), pageable: true, change: gridChange, dataBound: onDataBound, selectable: "multiple cell", navigatable: true, filterable: true, sortable: true, reorderable: true, resizable: true, columnMenu: false }); gridShizzle= $("#gridShizzle").kendoGrid({ dataSource: { type: "json", data: gridShizzleData, autoSync: true, pageSize: 500, serverPaging: false, serverFiltering: false, serverSorting: false }, columns : [ { field: "Pair", title: "Pair"}, { field: "ON", title: "ON"}, { field: "W1", title: "1w"}, { field: "W2", title: "2w"}, { field: "M1", title: "1m"}, { field: "M2", title: "2m"}, { field: "M3", title: "3m"}, { field: "M6", title: "6m"}, { field: "M9", title: "9m" }, { field: "Y1", title: "1y" } ], toolbar: kendo.template($("#gridShizzleTemplate").html()), pageable: true, change: gridChange, dataBound: onDataBound, selectable: "multiple cell", navigatable: true, filterable: true, sortable: true, reorderable: true, resizable: true, columnMenu: false });