We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy.
Unfortunately, activation email could not send to your email. Please try again.

How to define Height of GroupColumnDescription ?

Thread ID:

Created:

Updated:

Platform:

Replies:

127827 Dec 11,2016 08:41 PM Dec 14,2016 02:45 AM Xamarin.Forms 7
loading
Tags: SfDataGrid
Emil
Asked On December 11, 2016 08:41 PM

I have a custom cell as below, so RowHeight = 200, if i do groupping, GroupColumnDescription  Height becomes also 200. Is it possible to define or reduce the height of GroupColumnDescription ? 


    <sfgrid:SfDataGrid  ScrollingMode="PixelLine"             
                         AutoGenerateColumns="False"
                         AllowSorting="True"   
                            IsEnabled="True"  
                         ColumnSizer="Star"
                         AllowSwiping="True"
                         AllowDraggingRow="True"
                        AllowDraggingColumn="False"
                         MaxSwipeOffset="150"
                          GridTapped="dataGrid_GridTapped"
                         SelectionMode="Single"
                           AutoExpandGroups="True"
                        AllowGroupExpandCollapse="True"
                         RowHeight="200" 

<sfgrid:SfDataGrid.GroupColumnDescriptions>
          <sfgrid:GroupColumnDescription ColumnName="level" Height="20"/>
        </sfgrid:SfDataGrid.GroupColumnDescriptions>


 <sfgrid:GridTemplateColumn.CellTemplate>

              <DataTemplate>
                <Grid BackgroundColor="White" Padding="10" RowSpacing="20">
                  <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"></ColumnDefinition>
                    <ColumnDefinition Width="*"></ColumnDefinition>

                  </Grid.ColumnDefinitions>
                  <Grid.RowDefinitions>
                    <RowDefinition Height="*"></RowDefinition>
                    <RowDefinition Height="10"></RowDefinition>
                  </Grid.RowDefinitions>

                  <StackLayout Orientation="Vertical" Grid.Row="0" Grid.Column="0" >

                    <Label TextColor="Black"  Text="{Binding level}"/>                
                    <Label  TextColor="Black"   Text="{Binding name}" StyleClass="Header"  />                    

                  </StackLayout>
                  <BoxView Grid.Row="1"  Grid.Column="0" Grid.ColumnSpan="2"  HorizontalOptions="FillAndExpand" BackgroundColor="Black"></BoxView>                  
                </Grid>
              </DataTemplate>

            </sfgrid:GridTemplateColumn.CellTemplate>

Divakar Subramaniam [Syncfusion]
Replied On December 12, 2016 02:30 AM

Hi Emil, 
 
Thanks for contacting Syncfusion Support. 
 
We have checked your query. You can achieve your requirement by using SfDataGrid.QueryRowHeight event. Please refer the below code snippet for more details. 
private void DataGrid_QueryRowHeight(object sender, QueryRowHeightEventArgs e) 
{ 
    var rowData = dataGrid.GetRecordAtRowIndex(e.RowIndex); 
    if(rowData == null && e.RowIndex != 0) 
    { 
        e.Height = 100; 
        e.Handled = true; 
    } 
} 
  
In the above snippet, we get the row data and checked whether the row is caption summary row or record row. If the row is caption summary row, then we have applied the row height. 
Also, we have attached the sample for your reference and you can download the same from the below link. 
 
Regards, 
Divakar. 


Emil
Replied On December 12, 2016 06:15 AM

Hi Divakar,

thanks fro your help but it doesnt work correctly. If I have 2 goups and each has 4 items. When I expand 2nd. group and then try to collapse again, It throws an exception as  3 out of range 0 to 2 Parameter name: from exception as details below. 

System.Argu

3 out of range 0 to 2 Parameter name: frommentOutOfRangeException3 out of range 0 to 2 Parameter name: fr

  at Syncfusion.GridCommon.ScrollAxis.DistanceRangeCounterCollection.CheckRange (System.String paramName, System.Int32 from, System.Int32 to, System.Int32 actualValue) [0x00046] in <23738da4e53c4b0d8a14abe2c3571131>:0 
  at Syncfusion.GridCommon.ScrollAxis.DistanceRangeCounterCollection.SetRange (System.Int32 from, System.Int32 to, System.Double distance) [0x0000d] in <23738da4e53c4b0d8a14abe2c3571131>:0 
  at Syncfusion.GridCommon.ScrollAxis.LineSizeCollection.InitializeDistances () [0x00101] in <23738da4e53c4b0d8a14abe2c3571131>:0 
  at Syncfusion.GridCommon.ScrollAxis.LineSizeCollection.ResumeUpdates () [0x0001e] in <23738da4e53c4b0d8a14abe2c3571131>:0 
  at Syncfusion.SfDataGrid.XForms.GridModel.CollapseGroup (Syncfusion.Data.Group group) [0x000ed] in <0e18c3999f324e928a6ea83b75eca1f0>:0 
  at Syncfusion.SfDataGrid.XForms.SpannedDataRow.IsExpandedChanged (System.Boolean isExpanded) [0x00032] in <0e18c3999f324e928a6ea83b75eca1f0>:0 
  at Syncfusion.SfDataGrid.XForms.CaptionSummaryRowControl.RaisePointerTouchUp () [0x00025] in <0e18c3999f324e928a6ea83b75eca1f0>:0 
  at Xamarin.Forms.Command+<>c__DisplayClass3_0.<.ctor>b__0 (System.Object o) [0x00000] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Core\Command.cs:73 
  at Xamarin.Forms.Command.Execute (System.Object parameter) [0x00000] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Core\Command.cs:107 
  at Xamarin.Forms.TapGestureRecognizer.SendTapped (Xamarin.Forms.View sender) [0x00018] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Core\TapGestureRecognizer.cs:42 
  at Xamarin.Forms.Platform.Android.TapGestureHandler.OnTap (System.Int32 count) [0x00028] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\TapGestureHandler.cs:36 
  at Xamarin.Forms.Platform.Android.InnerGestureListener.Android.Views.GestureDetector.IOnGestureListener.OnSingleTapUp (Android.Views.MotionEvent e) [0x0001c] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\InnerGestureListener.cs:125 
  at Android.Views.GestureDetector+IOnGestureListenerInvoker.n_OnSingleTapUp_Landroid_view_MotionEvent_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_e) [0x00011] in /Users/builder/data/lanes/3511/ce955cc0/source/monodroid/src/Mono.Android/platforms/android-24/src/generated/Android.Views.GestureDetector.cs:681 
  at (wrapper dynamic-method) System.Object:6af99487-6f40-40c1-a637-a184e25c36d4 (intptr,intptr,intptr)

Ashok N [Syncfusion]
Replied On December 13, 2016 07:49 AM

Hi Emil, 

Please ignore our previous update. 

You can achieve your requirement by hadling SfDataGrid.QueryRowHeight event. Please refer the below code example 
dataGrid.QueryRowHeight += DataGrid_QueryRowHeight; 

private void DataGrid_QueryRowHeight(object sender, QueryRowHeightEventArgs e) 
{ 
    if (SfDataGridHelpers.IsCaptionSummaryRow(this.dataGrid, e.RowIndex)) 
    { 
        e.Height = 100; 
        e.Handled = true; 
    } 
} 
  
Regards, 
Ashok 


Emil
Replied On December 13, 2016 11:10 AM

Hi Ashok,

thanks fro your help but it still didnt make any change for me. I am still getting same exception as below 
This is only happening if I click expand and try to collapse last group again. 



Xamarin caused by: android.runtime.JavaProxyThrowable: System.ArgumentOutOfRangeException: 3 out of range 0 to 2
Parameter name: from
  at Syncfusion.GridCommon.ScrollAxis.DistanceRangeCounterCollection.CheckRange (System.String paramName, System.Int32 from, System.Int32 to, System.Int32 actualValue) [0x00046] in <23738da4e53c4b0d8a14abe2c3571131>:0 
  at Syncfusion.GridCommon.ScrollAxis.DistanceRangeCounterCollection.SetRange (System.Int32 from, System.Int32 to, System.Double distance) [0x0000d] in <23738da4e53c4b0d8a14abe2c3571131>:0 
  at Syncfusion.GridCommon.ScrollAxis.LineSizeCollection.InitializeDistances () [0x00101] in <23738da4e53c4b0d8a14abe2c3571131>:0 
  at Syncfusion.GridCommon.ScrollAxis.LineSizeCollection.ResumeUpdates () [0x0001e] in <23738da4e53c4b0d8a14abe2c3571131>:0 
  at Syncfusion.SfDataGrid.XForms.GridModel.CollapseGroup (Syncfusion.Data.Group group) [0x000ed] in <0e18c3999f324e928a6ea83b75eca1f0>:0 
  at Syncfusion.SfDataGrid.XForms.SpannedDataRow.IsExpandedChanged (System.Boolean isExpanded) [0x00032] in <0e18c3999f324e928a6ea83b75eca1f0>:0 
  at Syncfusion.SfDataGrid.XForms.CaptionSummaryRowControl.RaisePointerTouchUp () [0x00025] in <0e18c3999f324e928a6ea83b75eca1f0>:0 
  at Xamarin.Forms.Command+<>c__DisplayClass3_0.<.ctor>b__0 (System.Object o) [0x00000] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Core\Command.cs:73 
  at Xamarin.Forms.Command.Execute (System.Object parameter) [0x00000] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Core\Command.cs:107 
  at Xamarin.Forms.TapGestureRecognizer.SendTapped (Xamarin.Forms.View sender) [0x00018] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Core\TapGestureRecognizer.cs:42 
  at Xamarin.Forms.Platform.Android.TapGestureHandler.OnTap (System.Int32 count) [0x00028] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\TapGestureHandler.cs:36 
  at Xamarin.Forms.Platform.Android.InnerGestureListener.Android.Views.GestureDetector.IOnGestureListener.OnSingleTapUp (Android.Views.MotionEvent e) [0x0001c] in C:\BuildAgent2\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\InnerGestureListener.cs:125 
  at Android.Views.GestureDetector+IOnGestureListenerInvoker.n_OnSingleTapUp_Landroid_view_MotionEvent_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_e) [0x00011] in /Users/builder/data/lanes/3511/ce955cc0/source/monodroid/src/Mono.Android/platforms/android-24/src/generated/Android.Views.GestureDetector.cs:681 
  at (wrapper dynamic-method) System.Object:652a7c8c-f50b-43be-9679-4dcecda552f5 (intptr,intptr,intptr)
	at md5b60ffeb829f638581ab2bb9b1a7f4f3f.InnerGestureListener.n_onSingleTapUp(Native Method)
	at md5b60ffeb829f638581ab2bb9b1a7f4f3f.InnerGestureListener.onSingleTapUp(InnerGestureListener.java:79)
	at android.view.GestureDetector.onTouchEvent(GestureDetector.java:635)
	at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer_1.n_onTouch(Native Method)
	at md5b60ffeb829f638581ab2bb9b1a7f4f3f.VisualElementRenderer_1.onTouch(VisualElementRenderer_1.java:57)
	at android.view.View.dispatchTouchEvent(View.java:9290)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2547)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2240)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at md5b60ffeb829f638581ab2bb9b1a7f4f3f.PlatformRenderer.n_dispatchTouchEvent(Native Method)
	at md5b60ffeb829f638581ab2bb9b1a7f4f3f.PlatformRenderer.dispatchTouchEvent(PlatformRenderer.java:55)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
	at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2403)
	at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1737)
	at android.app.Activity.dispatchTouchEvent(Activity.java:2765)
	at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)
	at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)
	at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2364)
	at android.view.View.dispatchPointerEvent(View.java:9514)
	at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4230)
	at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4096)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642)
	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695)
	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661)
	at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3787)
	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3669)
	at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3844)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642)
	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695)
	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661)
	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3669)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642)
	at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5922)
	at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5896)
	at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5857)
	at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6025)
	at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
	at android.os.MessageQueue.nativePollOnce(Native Method)
	at android.os.MessageQueue.next(MessageQueue.java:323)
	at android.os.Looper.loop(Looper.java:135)
	at android.app.ActivityThread.main(ActivityThread.java:5417)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Emil
Replied On December 13, 2016 11:26 AM

I made several further tests and I recognized that it only occurs for last group. Basically I cannot collapse the last group when I use QueryRowHeight event. It throws this exception everytime. If i dont use QueryRowHeight, using default, everything works fine.

Emil
Replied On December 13, 2016 11:36 AM

Further more information, my datagrid is defined as below, as you can see RowHeight is defined 200, If I remove this, it doesnt crash because It will automatically resize as same height as group caption. So from that I understand it that it occurs only when row height is different than caption height

  <sfgrid:SfDataGrid  ScrollingMode="PixelLine"  x:Name="datagrid"
                         AutoGenerateColumns="False"
                         AllowSorting="True"
                            IsEnabled="True"
                         ColumnSizer="Star"
                         AllowSwiping="True"
                         AllowDraggingRow="True"
                        AllowDraggingColumn="False"
                         MaxSwipeOffset="150"
                          GridTapped="dataGrid_GridTapped"
                         SelectionMode="Single"
                           AutoExpandGroups="True"
                        AllowGroupExpandCollapse="True"
                         RowHeight="200" ItemsSource="{Binding Items}"
              SelectedItem="{Binding SelectedItem}"  VerticalOptions="FillAndExpand">

Ashok N [Syncfusion]
Replied On December 14, 2016 02:45 AM

Hi Emil,   
   
We are sorry about the inconvenience caused. 
   
We are able to reproduced the ArgumentOutOfRangeException while Collapse the last Group in Xamarin.Forms. A support incident has been created under your account. Please log on to our support website to check for further updates:    
     
    
Regards,    
Ashok    


CONFIRMATION

This post will be permanently deleted. Are you sure you want to continue?

Sorry, An error occured while processing your request. Please try again later.

You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.

;