I have a tree table that allows the user to group columns arbitrarily. Is it bad UX for me to move the grouped by columns to the front of the table right next to the tree controls? Would it be more ideal to duplicate the columns and place them under a column group with the tree controls and leave the original columns in their positions?

So the scenario is a Tree table start state, the user then "groups by C," and I programmatically behind the scenes move the column up next to the tree controls, is this the Least Surprise?


download bmml source – Wireframes created with Balsamiq Mockups

If you would be surprised, what would you expect to happen?

  • What do you mean by "tree table"? Could you perhaps post a mockup?
    – cdeszaq
    Commented Mar 19, 2012 at 18:36
  • 1
    Nothing is automatically bad UX, but some things are often bad. And yeah, a mockup/screenshot would be good
    – Zelda
    Commented Mar 19, 2012 at 18:40
  • I thought this site had some balsamiq integration for mock ups, how do I access it? Commented Mar 19, 2012 at 19:02
  • @JustinDennahower - In the editing view, click the little Smileyface in the toolbar to add a Balsamiq Mockup.
    – cdeszaq
    Commented Mar 19, 2012 at 19:13
  • 3
    @JustinDennahower - There 'ya go. Over 10 rep :)
    – cdeszaq
    Commented Mar 19, 2012 at 20:05

4 Answers 4


There's nothing wrong with it and it's actually a good idea - as long as you do it right. Meaning that you provide a clear visual clue that this column is different from the others, a clue like a different background color for the entire column - not just some icon on the header row.

Also, it can only be enough if you just have one level of grouping, i.e. the user can't say "group by name, then by date and then by subject". If you allow several levels of grouping, you need clearer ways of conveying the order. This is how Outlook approaches this:

enter image description here

  • I like this,it establishes the relationship pretty well
    – Mervin
    Commented Mar 19, 2012 at 21:02
  • Thanks Vitaly. What I decided to do to indicate the group columns was to have a super column header. In flex its called a ColumnGroup. Commented Mar 19, 2012 at 21:10
  • Yes, Outlook displays "group by" like that, but it doesn't change the column order! It would surprise me a lot to have a column jump from one place to another just because I grouped by it. Commented Mar 20, 2012 at 8:35
  • Not only does it change the column order, but it removes the column altogether :). When you group by a column, it disappears and its values appear as headings of the new sections of the inbox. But the Outlook model is pretty complicated and it's good for a smart grid with multiple possible grouping levels, simple grids don't need that. Commented Mar 20, 2012 at 12:19

Interesting question and I would really be interested in seeing how the dynamic rendering of the table columns is done.

That said,if I looked at your implementation,I would surely be surprised since:

  1. The behavior would be unexpected
  2. We normally associate table column headers to be steady and as a point of reference to what the information in the table rows relates to.Though by moving column "C" to "group by" might help make the connection, someone who has not fully established the connection at first hand would have a tougher time understanding that now the data is being grouped by C.
  3. Another point of confusion would be with regards to how C will relate to A and B (the other columns) now that its the primary "grouping column"

This is what would confuse me from just the point of the view of the columns moving around. However another thing you need to consider is the scope for laggy movements which might happen why constantly re-rendering the table (i am assuming you would be re-rendering the table without refreshing the page) but even if you refresh the page for every column reorder, the the refresh might annoy users and also confuse them with regards to what has changed from the previous state


It would be worth the effort to have this mocked up as an interactive prototype.

Short of that, I would think if the sort control is the table header, then yes, I think that would be disconcerting and unexpected. (as what I cliked suddenly moves to somewhere else) However, if you have a separate control such as a menu that causes the sorting, I think the table could change drastically as you describe and it would be less bad. God is in the details.

  • I agree that clicking the column and having it jump would be really confusing. I use a popup with check boxes currently, but should be changed to some sort of an ordered list. Commented Mar 20, 2012 at 15:27

It would be good if the columns are maintained minimal and should be able to hint by cursor to be + pointer when user mouseover on columns.

  • Hi Basheer welcome to UX.SE! Could you elaborate on your answer and maybe add some references to your position? This answer is a bit short and unsubstantiated at the moment and people are likely to downvote it.
    – dnbrv
    Commented Mar 20, 2012 at 12:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.