Javascript 剑道UI网格单元格中的工具栏菜单,从哪一行单击菜单?

Javascript 剑道UI网格单元格中的工具栏菜单,从哪一行单击菜单?,javascript,jquery,angularjs,kendo-ui,kendo-grid,Javascript,Jquery,Angularjs,Kendo Ui,Kendo Grid,我有一个剑道UI网格,其中第一列包含一个菜单,用户可以在其中选择要对项目执行的操作 我使用的是剑道UI工具栏,只有溢出图标(我找不到更好的选项,套件中似乎没有独立的下拉菜单) HTML: 普朗克: 问题:在上面的工具栏点击处理程序中,我如何知道他们在哪一行使用了菜单? 此外,如果有一个更干净的独立剑道菜单或类似菜单(与blueopal主题相匹配),这可能会引起人们的兴趣(并且可能会使这更容易).要解决您的问题,您需要知道,在中单击事件处理程序此参考工具栏,并且此元素是HTML元素 如果您这样做:

我有一个剑道UI网格,其中第一列包含一个菜单,用户可以在其中选择要对项目执行的操作

我使用的是剑道UI工具栏,只有溢出图标(我找不到更好的选项,套件中似乎没有独立的下拉菜单)

HTML:

普朗克:

问题:在上面的工具栏点击处理程序中,我如何知道他们在哪一行使用了菜单?


此外,如果有一个更干净的独立剑道菜单或类似菜单(与blueopal主题相匹配),这可能会引起人们的兴趣(并且可能会使这更容易).

要解决您的问题,您需要知道,在
中单击事件处理程序
参考
工具栏
,并且
此元素
是HTML元素

如果您这样做:

click: function(e) {
    // Get the HTML row (tr) that contains the toolbar
    var row = this.element.closest("tr");
    // Get its index in the table
    console.log("row", row.index());
    ...
}
如果需要访问网格数据源中的数据项,应使用KendoUI
Grid
中的
dataItem
方法。这有点像:

click: function(e) {
    // Get the HTML row (tr) that contains the toolbar
    var row = this.element.closest("tr");
    // Get its index in the table
    console.log("row", row.index());
    // Get the item from the Grid DataSource
    var item = $scope.lineGrid.dataItem(row);
    // Show it in the console
    console.log("item", item);
    ...
}
$scope.lineToolbarOptions = {
        items: [{
            type: "button", id: "menuItemA", text: "Do A", overflow: "always"
        }, {
            type: "button", id: "menuItemB", text: "Do B", overflow: "always"
        }],
        click: function (e) {
            console.log("click", e.target.text());
            if (e.id.indexOf("menuItemA") === 0) {
              alert(e.id);
            } else if (e.id.indexOf("menuItemB") === 0) {
              alert(e.id);  
            }
        }
    };
click: function(e) {
    // Get the HTML row (tr) that contains the toolbar
    var row = this.element.closest("tr");
    // Get its index in the table
    console.log("row", row.index());
    ...
}
click: function(e) {
    // Get the HTML row (tr) that contains the toolbar
    var row = this.element.closest("tr");
    // Get its index in the table
    console.log("row", row.index());
    // Get the item from the Grid DataSource
    var item = $scope.lineGrid.dataItem(row);
    // Show it in the console
    console.log("item", item);
    ...
}