We're using the Grid with CardView=true;
UltraGridBand band = ultraGridResults.DisplayLayout.Bands[0]; band.UseRowLayout = true; band.CardView = true; band.CardSettings.Style = CardStyle.Compressed; // band.CardSettings.CardScrollbars = CardScrollbars.None;//???
if GridRows do not fit into grid verically(sum of Row's heights > Grid.Height), grid automatically expands and scrolls Horizontally. Can grid be forced to expand vertically to prevent appearance of multiple columns on screen?
Thank You,
Mike
Hi Mike,
No, there's currently no way to do this with CardView. If you want vertical scrolling instead of Horizontal, maybe you would be better off just using RowLayouts without CardView.
This would mean losing the ability to Compress a row, but it might work out better for you.
But http://help.infragistics.com/Help/NetAdvantage/WinForms/2009.1/CLR2.0/HTML/WinGrid_Whats_New_2005_1.html
says it's possible:
"The WinGrid now supports vertical scrolling of the card view area. Previously, when the vertical area used to display cards was less than the height of the cards, the height of the cards was reduced, causing the bottom of the card to disappear. Now, a vertical scrollbar is displayed on the right-hand side of the card area (CardAreaUIElement). This provides the ability to scroll up or down and bring any part of the card into view. The following screenshot shows a multi-band grid with a card view area that is shorter than the cards it contains (notice the presence of a vertical scrollbar (inner) which appears automatically when required). When the height of the CardView area (CardAreaUIElement) is less than the height of any card that needs to be displayed, we now display a vertical scrollbar so that any part of the card can be brought into view. The vertical scrollbar appears and disappears as needed. The SmallChange value for the vertical scrollbar is set so that it takes approximately 10 clicks to scroll the entire range. The LargeChange value is set to five times that amount, so that only two clicks on the scroll track are required to scroll the entire range. The CardAreaUIElement now supports mouse wheeling and mouse panning for both horizontal and vertical scrolling. When the middle mouse button is clicked over the card area, the appropriate panning image is displayed depending on whether horizontal and/or vertical scrolling is possible. When the mouse wheel is moved while the cursor is positioned over the horizontal scrollbar, the card area is scrolled horizontally. When the cursor is positioned anywhere else, it is scrolled vertically (provided that scrolling is possible)."
Why it is not possible?
Hello,
This is great advice. I tried something similar because I wanted to get a side view where the labels were on the left and the value on the right, but still keep the ability to have child bands. This works but when I have a table with 1 row with 20 columns, the verticle scrollbar never enables. The first row is too big to be on one screen. I tried setting the scrollbars to Auto, and Both. I also noticed that some of the columns get squished together in one row so row two ends up behind row 1. Any ideas? My psuedo code is below.
m_ultraGrid.DisplayLayout.Bands[0].UseRowLayout = true;
m_ultraGrid.DisplayLayout.Bands[0].RowLayoutLabelPosition =
LabelPosition.Left;
m_ultraGrid.DisplayLayout.Bands[0].Layout.Override.RowSelectorWidth = 20;
m_ultraGrid.DataSource = m_ultraGridSourceSet;
int i = 0;
foreach (UltraGridColumn uc in m_ultraGrid.DisplayLayout.Bands[0].Columns)
{
uc.RowLayoutColumnInfo.OriginX = 0;
uc.RowLayoutColumnInfo.OriginY = i;
uc.RowLayoutColumnInfo.LabelPosition =
}