From f1961f00f7c57aa6a1a76e8d0e1161a039740dbd Mon Sep 17 00:00:00 2001 From: "Kenneth G. Franqueiro" Date: Thu, 24 May 2012 16:25:53 -0400 Subject: [PATCH] ColumnHider: iterate subRows array rather than column hash; fixes #164 --- extensions/ColumnHider.js | 50 +++++++++++++++++--------------- test/extensions/ColumnHider.html | 12 ++++---- 2 files changed, 33 insertions(+), 29 deletions(-) diff --git a/extensions/ColumnHider.js b/extensions/ColumnHider.js index cc5c13788..576701fa8 100644 --- a/extensions/ColumnHider.js +++ b/extensions/ColumnHider.js @@ -39,7 +39,8 @@ define(["dojo/_base/declare", "dojo/has", "dojo/on", "dojo/query", "dojo/dom", " var grid = this, hiderMenuNode = this.hiderMenuNode, hiderToggleNode = this.hiderToggleNode, - id, col, div, checkId; + subRowsLength = this.subRows.length, + i, j, len, id, col, div, checkId; this.inherited(arguments); @@ -63,7 +64,7 @@ define(["dojo/_base/declare", "dojo/has", "dojo/on", "dojo/query", "dojo/dom", " // hook up delegated listener for modifications to checkboxes this._listeners.push(listen(hiderMenuNode, - ".dgrid-hider-menu-check:" + (has("ie") < 9 ? "click" : "change"), + ".dgrid-hider-menu-check:" + (has("ie") < 9 ? "click" : "change"), function(e){ grid._toggleColumnState(e); } @@ -94,27 +95,30 @@ define(["dojo/_base/declare", "dojo/has", "dojo/on", "dojo/query", "dojo/dom", " this._columnStyleRules = {}; // populate menu with checkboxes/labels based on current columns - for(id in this.columns){ - col = this.columns[id]; - // allow cols to opt out of the hider (specifically for selector col) - if (col.unhidable) continue; - - // create the HTML for each column selector. - div = put(hiderMenuNode, "div.dgrid-hider-menu-row"); - checkId = grid.domNode.id + "-hider-menu-check-" + id; - // create label and checkbox via innerHTML to make old IEs behave - div.innerHTML = '