У меня есть выбираемая сетка KendoUI в моем приложении MVC. Я хочу что-то сделать, когда пользователь дважды щелкает по сетке.
Я не вижу события двойного щелчка для сетки.
Как я могу обработать событие двойного щелчка, если его нет?
У меня есть выбираемая сетка KendoUI в моем приложении MVC. Я хочу что-то сделать, когда пользователь дважды щелкает по сетке.
Я не вижу события двойного щелчка для сетки.
Как я могу обработать событие двойного щелчка, если его нет?
Используйте стандартное событие двойного щелчка. Первый щелчок выберет строку сетки, добавив к ней класс .k-state-selected
, а второй щелчок вызовет событие двойного щелчка.
$("#yourgridname").on("dblclick", "tr.k-state-selected", function () {
// insert code here
});
Вы также можете использовать dataBound
dataBound: function (e) {
var grid = this;
grid.tbody.find("tr").dblclick(function (e) {
var dataItem = grid.dataItem(this);
...
});
}
с http://www.telerik.com/forums/double-click-on-grid-row-with-angular
const grid = e.sender;
.
- person David Clarke; 22.06.2020
tr
. Итак, если у вас есть тысяча строк, вы получите тысячу обработчиков событий. Лучше использовать делегированный обработчик событий вместо напрямую связанного обработчика событий.
- person jpllosa; 13.04.2021
С помощью kendoHelpers вы можете получить элемент данных строки. https://github.com/salarcode/kendoHelpers
kendoHelpers.grid.eventRowDoubleClick (theGrid,
function(dataItem){
// do stuff with dataItem
});
Он также имеет eventCellDoubleClick
, который работает с ячейками.
Вот еще один способ справиться с этим:
var grid = $('#myGrid').kendoGrid({
columnMenu: true,
filterable: true,
selectable: true,
// and many more configuration stuff...
}).data('kendoGrid');
grid.tbody.delegate('tr', 'dblclick', function() {
var dataItem = grid.dataItem($(this));
// do whatever you like with the row data...
});
Начиная с версии 3.0, delegate
считается устаревшим. Вы можете использовать on
, например:
grid.tbody.on('dblclick', 'tr', function() {
var dataItem = grid.dataItem($(this));
// do whatever you like with the row data...
});
dblclick(function (e) {...});
не работал после редактирования строки (встроенный).
- person David Clarke; 15.07.2020