Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
4032
How align header groups
posted

Hello,

I'm trying to use header groups, because I have somewhat similar like discussed in this thread:

http://blogs.infragistics.com/forums/p/40913/228624.aspx#228624

I can not figure out how the headers are align and the header width can be set. In my Grid every column stands for a time period of 15 minutes. My first header group should span 1 day (24 * 4 columns). The second header group stands for 1 hour (4 columns).  For every 4 columns I add a header group.

For every hour group I set the day-group as parent:

groupHour.RowLayoutGroupInfo.SpanX = 4;

groupHour.RowLayoutGroupInfo.ParentGroup = groupDay;

groupHour.Width = 4 * myWidth;

For the columns I set the current hour group as parent:

col.RowLayoutColumnInfo.SpanX = 1;

col.RowLayoutColumnInfo.ParentGroup = groupHour;

col.Width = myWidth;

After this, the hour groups have the same width as the columns instead of span over 4 columns. Why this? How are the Origin and Span properties to be set to achieve this?

Thanks for help.

Markus

  • 4032
    Offline posted

    My groups looks like this:

    and here is the code:

                    band0.Groups.Clear();
                    band0.RowLayoutStyle = RowLayoutStyle.GroupLayout;

                    // Group Organisation
                    UltraGridGroup groupOrg = band0.Groups.Add( "GroupOrg" );
                    groupOrg.RowLayoutGroupInfo.OriginX = 0;
                    groupOrg.RowLayoutGroupInfo.OriginY = 0;
                    groupOrg.RowLayoutGroupInfo.SpanX = 1;
                    groupOrg.RowLayoutGroupInfo.SpanY = 2;
                    groupOrg.RowLayoutGroupInfo.LabelSpan = 2;

                    // Column Organisation
                    UltraGridColumn col = band0.Columns[keyCol_Organisation];
                    col.RowLayoutColumnInfo.OriginX = 0;
                    col.RowLayoutColumnInfo.OriginY = 0;
                    col.RowLayoutColumnInfo.SpanX = 1;
                    col.RowLayoutColumnInfo.SpanY = 1;
                    col.RowLayoutColumnInfo.ParentGroup = groupOrg;

                    // Group Day 0
                    UltraGridGroup groupDay0 = band0.Groups.Add( "GroupDay0" );
                    groupDay0.Header.Caption = "Day 0";
                    groupDay0.RowLayoutGroupInfo.OriginX = 1;
                    groupDay0.RowLayoutGroupInfo.OriginY = 0;
                    groupDay0.RowLayoutGroupInfo.SpanX = 24*4;  // 24 * 4 columns of 15 minutes
                    groupDay0.RowLayoutGroupInfo.SpanY = 1;

                    // Group Day 1
                    UltraGridGroup groupDay1 = band0.Groups.Add( "GroupDay1" );
                    groupDay1.Header.Caption = "Day 1";
                    groupDay1.RowLayoutGroupInfo.OriginX = 2;
                    groupDay1.RowLayoutGroupInfo.OriginY = 0;
                    groupDay1.RowLayoutGroupInfo.SpanX = 24 * 4;  // 24 * 4 columns of 15 minutes
                    groupDay1.RowLayoutGroupInfo.SpanY = 1;

                    // Group Hour 0 (Subgroup of Group Day 0)
                    UltraGridGroup groupHour0 = band0.Groups.Add( "GroupHour0" );
                    groupHour0.Header.Caption = "Hour 0";
                    groupHour0.RowLayoutGroupInfo.OriginX = 0;
                    groupHour0.RowLayoutGroupInfo.OriginY = 0;
                    groupHour0.RowLayoutGroupInfo.SpanX = 4;    // 4 columns of minutes
                    groupHour0.RowLayoutGroupInfo.SpanY = 1;
                    groupHour0.RowLayoutGroupInfo.ParentGroup = groupDay0;

                    // Group Hour 1 (Subgroup of Group Day 0)
                    UltraGridGroup groupHour1 = band0.Groups.Add( "GroupHour1" );
                    groupHour1.Header.Caption = "Hour 1";
                    groupHour1.RowLayoutGroupInfo.OriginX = 1;
                    groupHour1.RowLayoutGroupInfo.OriginY = 0;
                    groupHour1.RowLayoutGroupInfo.SpanX = 4;    // 4 columns of minutes
                    groupHour1.RowLayoutGroupInfo.SpanY = 1;
                    groupHour1.RowLayoutGroupInfo.ParentGroup = groupDay0;
                   
                    // Columns 0...3 (columns of Group Hour 0)
                    for ( int i = 0; i <= 45; i = i + 15 )
                    {
                        col = band0.Columns[i.ToString()];
                        col.Header.Caption = i.ToString();
                        col.RowLayoutColumnInfo.OriginX = i / 15;
                        col.RowLayoutColumnInfo.OriginY = 0;
                        col.RowLayoutColumnInfo.SpanX = 1;
                        col.RowLayoutColumnInfo.SpanY = 1;
                        col.RowLayoutColumnInfo.ParentGroup = groupHour0;
                    }
                    // Columns 4...7 (columns of Group Hour 1)
                    for ( int i = 60; i <= 105; i = i + 15 )
                    {
                        col = band0.Columns[i.ToString()];
                        col.Header.Caption = i.ToString();
                        col.RowLayoutColumnInfo.OriginX = (i -60) / 15;
                        col.RowLayoutColumnInfo.OriginY = 0;
                        col.RowLayoutColumnInfo.SpanX = 1;
                        col.RowLayoutColumnInfo.SpanY = 1;
                        col.RowLayoutColumnInfo.ParentGroup = groupHour1;
                    }
                   
                    // all other columns not assigned yet

     

    As you can see Day 0 and Hour 0 are not showed. Columns 15 - 45 are not visible. What I want is that Hour 0 and Hour 1 groups are under Day 0 and columns 0,15,30 and 45 are under Hour 0 etc.

    What do I missing here?

    Thanks for help. Markus