DevExtreme DataGrid onRowDblClick
我想为DevExtreme DataGrid实现一个onRowDblClick事件。 我需要这个事件的多个网格,所以我想实现这个为DataGrid一般。
我正在考虑重写onClick动作,并检查双击或使用onRowDblClick Action扩展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);
我做到了这一点,工作得很好(我遵循这个答案)
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;
}
});
链接地址: http://www.djcxy.com/p/31039.html