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

上一篇: DevExtreme DataGrid onRowDblClick

下一篇: Devextreme Grid remote grouping Sql Query formation