DevExtreme DataGrid onRowDblClick
DevExtreme DataGrid onRowDblClick
我想为 DevExtreme DataGrid 实现 onRowDblClick 事件。
我需要多个网格的这个事件,所以我想为一般的 DataGrid 实现这个。
我正在考虑覆盖 onClick 操作并检查双击或使用 onRowDblClick 操作扩展 DataGrid,但我不知道如何实现它。
请提供实现此功能的方法。
好的,最后我实现了一个 addRowDblClick 函数,如下所示:
var clickTimer, lastRowClickedId;
function addRowDblClick(id, dblClickFunc) {
$("#" + id).dxDataGrid({
onRowClick: function (e) {
//OBTAIN YOUR GRID DATA HERE
var grid = $("#" + id).dxDataGrid('instance');
var rows = grid.getSelectedRowsData();
if (clickTimer && lastRowCLickedId === e.rowIndex) {
clearTimeout(clickTimer);
clickTimer = null;
lastRowCLickedId = e.rowIndex;
//YOUR DOUBLE CLICK EVENT HERE
if (typeof dblClickFunc == 'function')
dblClickFunc();
} else {
clickTimer = setTimeout(function () { }, 250);
}
lastRowCLickedId = e.rowIndex;
}
});
}
在 DataGrid 中,我调用了一个函数 OnContentReady,我在其中使用 Id 和我想在双击时调用的函数来调用这个函数。
addRowDblClick('dxDataGrid', showDetail);
我这样做了并且效果很好(我跟着this answer)
var clickTimer, lastRowCLickedId;
$("#grdMain").dxDataGrid({
...
onRowClick: function (e) {
//OBTAIN YOUR GRID DATA HERE
var grid = $("#grdMain").dxDataGrid('instance');
var rows = grid.getSelectedRowsData();
if (clickTimer && lastRowCLickedId === e.rowIndex) {
clearTimeout(clickTimer);
clickTimer = null;
lastRowCLickedId = e.rowIndex;
//YOUR DOUBLE CLICK EVENT HERE
alert('double clicked!');
} else {
clickTimer = setTimeout(function () { }, 250);
}
lastRowCLickedId = e.rowIndex;
}
});
我用这个工作:
$("#grdMain").dxDataGrid({
....
onRowPrepared:function(event){
$(event.rowElement).on('dblclick', function(){
console.log('row dblclicked');
}).on('remove', function(){
//on remove event in jquery ui libraries or
//
$(this).off('dblclick remove');
})
}
})
我想为 DevExtreme DataGrid 实现 onRowDblClick 事件。 我需要多个网格的这个事件,所以我想为一般的 DataGrid 实现这个。
我正在考虑覆盖 onClick 操作并检查双击或使用 onRowDblClick 操作扩展 DataGrid,但我不知道如何实现它。
请提供实现此功能的方法。
好的,最后我实现了一个 addRowDblClick 函数,如下所示:
var clickTimer, lastRowClickedId;
function addRowDblClick(id, dblClickFunc) {
$("#" + id).dxDataGrid({
onRowClick: function (e) {
//OBTAIN YOUR GRID DATA HERE
var grid = $("#" + id).dxDataGrid('instance');
var rows = grid.getSelectedRowsData();
if (clickTimer && lastRowCLickedId === e.rowIndex) {
clearTimeout(clickTimer);
clickTimer = null;
lastRowCLickedId = e.rowIndex;
//YOUR DOUBLE CLICK EVENT HERE
if (typeof dblClickFunc == 'function')
dblClickFunc();
} else {
clickTimer = setTimeout(function () { }, 250);
}
lastRowCLickedId = e.rowIndex;
}
});
}
在 DataGrid 中,我调用了一个函数 OnContentReady,我在其中使用 Id 和我想在双击时调用的函数来调用这个函数。
addRowDblClick('dxDataGrid', showDetail);
我这样做了并且效果很好(我跟着this answer)
var clickTimer, lastRowCLickedId;
$("#grdMain").dxDataGrid({
...
onRowClick: function (e) {
//OBTAIN YOUR GRID DATA HERE
var grid = $("#grdMain").dxDataGrid('instance');
var rows = grid.getSelectedRowsData();
if (clickTimer && lastRowCLickedId === e.rowIndex) {
clearTimeout(clickTimer);
clickTimer = null;
lastRowCLickedId = e.rowIndex;
//YOUR DOUBLE CLICK EVENT HERE
alert('double clicked!');
} else {
clickTimer = setTimeout(function () { }, 250);
}
lastRowCLickedId = e.rowIndex;
}
});
我用这个工作:
$("#grdMain").dxDataGrid({
....
onRowPrepared:function(event){
$(event.rowElement).on('dblclick', function(){
console.log('row dblclicked');
}).on('remove', function(){
//on remove event in jquery ui libraries or
//
$(this).off('dblclick remove');
})
}
})