Я использую Kendo UI для jQuery. Моя сетка имеет 2 столбца: число с плавающей точкой и текст. Мне нужно получить строку сетки, когда значения меняются. Для числового поля c все работает нормально, но для текстового поля - нет: вызывается функция-обработчик, но как мне получить в ней данные сетки? (Я использую тот же обработчик, но это не имеет значения).
export class MyGrid {
constructor() {
let that: MyGrid = this;
$("#MyGrid").kendoGrid({
dataBound: function (e) {
this.tbody.find(".MyNumericValue").each(function () {
$(this).kendoNumericTextBox({
format: "n3",
decimals: 3,
change: that.onValueChange.bind(that)
});
});
// Event function is called, but how to get row data?
this.tbody.find(".MyTextValue").each(function () {
$(this).on("change", that.onValueChange.bind(that))
});
}
});
}
}
Столбцы:
let columns = [
{
title: "Decimal value",
field: "RoadLength",
template: "<input name='RoadLength' class='MyNumericValue' value='#: RoadLength #' />"
},
{
title: "Text value",
field: "Name",
template: "<input name='Name' class='k-textbox MyTextValue' value='#: Name #' />"
}
];
Событие: для текстового поля " e.sender.element.closest ("tr")"не работает.
onValueChange(e: any): void {
let g = $("#MyGrid").data("kendoGrid");
let dataItem = g.dataItem(e.sender.element.closest("tr"));
let name: string = e.sender.element[0].name;
let value = e.sender.value();
// dataItem.set(name, value);
}