如果我更改kendo子网格中的其他行单元格值,如何获取第一行对应的单元格值

时间:2016-11-09 09:40:28

标签: kendo-ui

我有剑道儿童网格。它有一些排。每行都有一些细胞。如果我改变第一行以外的单元格的值,我必须得到相应的第一行单元格值。这意味着如果我更改子网格中的第二行第二列值,我必须得到该网格中的第一行第二列值。

我已经在子网格中编写了每个单元格的更改事件。在更改任何单元格值时,此事件将触发。在这种情况下,我想实现上述功能。屏幕截图已附上。

enter image description here

更改细胞的代码是

           $('<input  maxlength="9" data-bind="value:' + options.field + '"/>')
                .appendTo(container)
                .kendoNumericTextBox({
                    format: "0.####",
                    decimals: 0,
                    min: 0,
                    spinners: false,
                    change: function (e) {
                        //Here i want to get the first row of this cell value
                    }
                }).off("keydown");

1 个答案:

答案 0 :(得分:0)

你有两种方法可以做到这一点。您可以从单元格文本或我喜欢的dataItem中获取值。

editor函数中试试这个:

function(container, options) {
    var $container = $(container),
        tdIndex = $container.index(),
        $correspondingCell = $container.closest("tbody").find("tr:first td:eq(" + tdIndex + ")"),
        dataItem = grid.dataItem($correspondingCell.parent()),
        correspondingColumnName = options.field;

    // Get from cell's text
    console.log("From Cell", $correspondingCell.text());

    // Get from dataItem
    console.log("From DataItem", dataItem[correspondingColumnName]);

    $('<input  maxlength="9" data-bind="value:' + options.field + '"/>')
        .appendTo($container)
        .kendoNumericTextBox({
            format: "0.####",
            decimals: 0,
            min: 0,
            spinners: false,
            change: function (e) {
                // Now this is the corresponding cell's value from first row
                console.log("First row's corresponding cell value", this);
            }.bind(dataItem[correspondingColumnName]) // <- bind the dataItem's property to the change event
        }).off("keydown");
}

Demo