ADAdministrator Syncfusion Team June 2, 2004 09:18 AM
You can get the UI working just by setting the grid.AllowDragSelectedCols = true. But this will not actually change the columns.
To manage this, you need to maintain a correspondence between the initial col positions and any moved col positions. You could do them in several ways, One would be to add an array of ints that you initialize 1 through the number of columns. Then when a column is moved, you move this elements of this int array. Also, anytime you access your external datasource, you use this index array to manage the proper corespondance. That''s the idea.
Now you could also add sort of a hidden row at the top of the grid that you use as this index array, and you initialize it to start as 1 to number of columns. The advantage is that the the grid itself will take care of moving these values. Here is the modified VirtGrid tutorial that uses this technique. It adds (and hides) a row at the top of the grid, The SaveCellInfo and QueryCellInfo have been modified to use this row value as col index into the external data source. (Instead of adding a hidden row, if you are OK with storing values in the column headers, you could use the ColStyles.Tag to hold the original index for each column.)
ADAdministrator Syncfusion Team June 2, 2004 09:35 AM
I set that property but weirdly when I select a column header it does not actually select the entire column. How do you (re)enable that functionality?
ADAdministrator Syncfusion Team June 2, 2004 10:01 AM
Check the grid.AllowSelections property. Make sure this property includes columns.
One other point is that if you have ListBoxSelectionMode set to anything other than None, then you will not be able to select a column since listboxselections require only row selections. If you want to move columns in ListBoxSelection mode, then you might try the technique shown in the sample in this forum thread. http://www.syncfusion.com/Support/Forums/message.aspx?MessageID=9676
It allows you to just mousedown on a column header and drag it to move the columns (by passing the default column moving UI that requires you to select the column first.)