SmartGWT version: 2.4
Browser: IE 8
OS: Windows XP
When a ListGrid is created and has cell-wrapping and column-freezing enabled, if one cell in a row has a lot of data (takes advantage of the wrapping) and at least one, but not all, columns are frozen, the two sides of the ListGrid "freeze-line" will have different row heights.
I realize that this is a known limitation but it should not be that difficult to rectify (contrary to what Isomorphic states).
The row-selection highlighting still works, thus the two sides of the "freeze-line" can be tied together correctly so it shouldn't be too difficult to ensure that the height of each row is correct.
As this may be somewhat heavier on the client-side, this could be made an option on the grid: ListGrid.setSyncFrozenRowHeights( boolean syncFrozenRowHeights )
To Reproduce:
Browser: IE 8
OS: Windows XP
When a ListGrid is created and has cell-wrapping and column-freezing enabled, if one cell in a row has a lot of data (takes advantage of the wrapping) and at least one, but not all, columns are frozen, the two sides of the ListGrid "freeze-line" will have different row heights.
I realize that this is a known limitation but it should not be that difficult to rectify (contrary to what Isomorphic states).
The row-selection highlighting still works, thus the two sides of the "freeze-line" can be tied together correctly so it shouldn't be too difficult to ensure that the height of each row is correct.
As this may be somewhat heavier on the client-side, this could be made an option on the grid: ListGrid.setSyncFrozenRowHeights( boolean syncFrozenRowHeights )
To Reproduce:
Code:
// Create the ListGrid. final ListGrid grid = new ListGrid(); grid.setWidth100(); grid.setHeight100(); grid.setCanFreezeFields( true ); grid.setWrapCells( true ); grid.setFixedRecordHeights( false ); // Create the Fields. final ListGridField[] fields = new ListGridField[2]; // Create the 1st field. final ListGridField field1 = new ListGridField(); field1.setWidth( "*" ); field1.setName( "fillerField" ); field1.setTitle( "filler" ); // Create the 2nd field. final ListGridField field2 = new ListGridField(); field2.setWidth( 100 ); field2.setName( "wrapperField" ); field2.setTitle( "wrapperMan" ); field2.setFrozen( true ); fields[0] = field1; fields[1] = field2; grid.setFields( fields ); // Create the Data. final ListGridRecord[] records = new ListGridRecord[2]; // Create the 1st row of data. final ListGridRecord record1 = new ListGridRecord(); record1.setAttribute( "fillerField", "A little text" ); record1.setAttribute( "wrapperField", "A lotta text, and then some...<br />and even more" ); // Create the 2nd row of data. final ListGridRecord record2 = new ListGridRecord(); record2.setAttribute( "fillerField", "Some text here too" ); record2.setAttribute( "wrapperField", "Not too much here" ); // Add the data records. records[0] = record1; records[1] = record2; // Set the data. grid.setData( records ); // Create the Window. final Window win = new Window(); win.setWidth( 500 ); win.setHeight( 500 ); win.setTitle( "ListGrid Issue Test" ); // Add the grid to the Window. win.addItem( grid ); // Show the Window. win.show();
Comment