diff options
author | David Capello <davidcapello@gmail.com> | 2012-02-22 11:51:14 -0300 |
---|---|---|
committer | David Capello <davidcapello@gmail.com> | 2012-02-22 11:51:14 -0300 |
commit | b1cb786e89ae365af1ef231efabe2103d2f05b64 (patch) | |
tree | a57e0c7fea360d1413ef54c71f3d75aafc71c9fd /slick.grid.js | |
parent | fb1247b63cc3595bb4b3e200e0f4c48e71054c3b (diff) | |
download | SlickGrid-b1cb786e89ae365af1ef231efabe2103d2f05b64.zip SlickGrid-b1cb786e89ae365af1ef231efabe2103d2f05b64.tar.gz SlickGrid-b1cb786e89ae365af1ef231efabe2103d2f05b64.tar.bz2 |
Add support to remove columns with ctrlKey from "sortColumns" when "multiColumnSort" option is enabled.
Diffstat (limited to 'slick.grid.js')
-rw-r--r-- | slick.grid.js | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/slick.grid.js b/slick.grid.js index 24c8a62..2d4193f 100644 --- a/slick.grid.js +++ b/slick.grid.js @@ -501,7 +501,8 @@ if (typeof Slick === "undefined") { } var sortOpts = null; - for (var i = 0; i < sortColumns.length; i++) { + var i = 0; + for (; i < sortColumns.length; i++) { if (sortColumns[i].columnId == column.id) { sortOpts = sortColumns[i]; sortOpts.sortAsc = !sortOpts.sortAsc; @@ -509,15 +510,22 @@ if (typeof Slick === "undefined") { } } - if ((!e.shiftKey && !e.metaKey) || !options.multiColumnSort) { - sortColumns = []; + if (e.ctrlKey && options.multiColumnSort) { + if (sortOpts) { + sortColumns.splice(i, 1); + } } + else { + if ((!e.shiftKey && !e.metaKey) || !options.multiColumnSort) { + sortColumns = []; + } - if (!sortOpts) { - sortOpts = { columnId: column.id, sortAsc: true }; - sortColumns.push(sortOpts); - } else if (sortColumns.length == 0) { - sortColumns.push(sortOpts); + if (!sortOpts) { + sortOpts = { columnId: column.id, sortAsc: true }; + sortColumns.push(sortOpts); + } else if (sortColumns.length == 0) { + sortColumns.push(sortOpts); + } } setSortColumns(sortColumns); |