EasyUI Forum

General Category => EasyUI for jQuery => Topic started by: y.bykov on September 25, 2017, 12:42:35 AM



Title: MultiSort with ctrl+click
Post by: y.bykov on September 25, 2017, 12:42:35 AM
Hello!
I need multisort with ctrl+click on fields headers. Now, if I click one second/third/etc field header it is become multisort, but I need this behaviour only when ctrl+click. onHeaderContextMenu works only on RBC, I didn`t find method for LBC.
I need your help.
Thank you!


Title: Re: MultiSort with ctrl+click
Post by: stworthy on September 26, 2017, 12:08:38 AM
Please custom the click event handler on the datagrid header.
Code:
$('#dg').datagrid({
  multiSort: true,
  headerEvents: $.extend({}, $.fn.datagrid.defaults.headerEvents, {
    click: function(e){
      var target = $(e.target).closest('div.datagrid-view').children('.datagrid-f')[0];
      var opts = $(target).datagrid('options');
      var cell = $(e.target).closest('.datagrid-cell');
      if (cell.length){
        var p1 = cell.offset().left + 5;
        var p2 = cell.offset().left + cell._outerWidth() - 5;
        if (e.pageX < p2 && e.pageX > p1){
          var field = cell.parent().attr('field');
          if (e.metaKey || e.ctrlKey){
            $(target).datagrid('sort', field);
          } else {
            if (opts.sortName != field){
              opts.sortName = '';
              opts.sortOrder = '';
            }
            $(target).datagrid('sort', field);
          }
        }
      }
    }
  })
})


Title: Re: MultiSort with ctrl+click
Post by: y.bykov on September 26, 2017, 01:12:35 AM
It is work fine.
Thank you!