I have an UltraGrid with 3 columns, and when the grid is resized by the user, I want the 2nd column to fill the expanded space, not the last column. I tried to do this with the answer at http://blogs.infragistics.com/forums/p/22353/81471.aspx#81471, but it doesn't work, when the grid is resized all columns remain fixed (and yes I've verified in the debugger that the 2nd column isn't getting the min/max width values set).
I'm using 11.1 and the answer I was using was from a couple of years ago. Is there some different way of doing this in the newer versions, or did I just run into a bug? If it's a bug, any workarounds I could try?
I tried it out and it works fine for me. I attached a sample project here demonstrating it. Try my sample and see if it works for you. If so, then something in your project is causing it not to work.
vineas said:and yes I've verified in the debugger that the 2nd column isn't getting the min/max width values set
How did you verify it? Did you check these properties at run-time to make sure your code is blowing away the settings by loading a Layout or something?
Also... what exactly is not working about it? What behavior are you getting?
Sorry, it's been a long week so didn't even realize that my description of the prob was pretty much worthless, sorry about that.
The image below shows the problem. The 2nd column (Display Name) is the one I want to have extend, and in the first image it's the only one that isn't fixed with a min and max width.
For verification, what I did was set a breakpoint in the layout to verify that the specific column wasn't set to with min/max width and then also an AfterSelectChange event I verified that the column still has the default values for min/max width (0). The code that is setting this up is only slightly different than the code at the link I added before. Not sure how will this will paste, but here it is:
private void tableView_InitializeLayout(object sender, InitializeLayoutEventArgs e) { var searchColumn = GetSearchColumn(); foreach (var band in e.Layout.Bands) { // first, resize all the columns in the band. foreach (var col in band.Columns) { col.PerformAutoResize(PerformAutoSizeType.AllRowsInBand); // now add a bit to account for bolding when selected. col.Width += (int)(col.Width * 0.15); // now fix the non-search columns (so the search column is the auto-fit column) if ((searchColumn != null) && (searchColumn != col)) { col.MinWidth = col.Width; col.MaxWidth = col.Width; } } } // finally, set the layout to extend the non-fixed column e.Layout.AutoFitStyle = AutoFitStyle.ExtendLastColumn; }
In the 2nd image that is extending the "Unit" column, the only difference is that I commented out the "if ((searchColumn != null)..." part, the rest is identical.
Ugh, not sure how I missed that, no idea how many times I looked at that and missed it. Thanks, everything is working now!
Hi,
I downloaded the sample I posted here and replaced my code with yours. It's almost the same, except for one thing. the big difference is this:
Your code:
e.Layout.AutoFitStyle = AutoFitStyle.ExtendLastColumn;
My code:
e.Layout.AutoFitStyle = AutoFitStyle.ResizeAllColumns;
When I change this, it works fine for me.