This is a migrated thread and some comments may be shown as answers.


3 Answers 78 Views
This is a migrated thread and some comments may be shown as answers.
Top achievements
Rank 1
Luis asked on 31 Mar 2011, 01:34 PM

In a rad gridview control I'm displaying tabular data.  The table has four rows only but it may have n number of columns so i I'm generating them dynamically (I assigned a datatable to the itemssource and whatever columns the datatable has, that's what the datagrid will display).  The problem is that I want to rotate the column headings (my client, and I can understand because the table will have an average of 40 columns.... to wide for the user to scroll left-right to find a column).  I managed to use a style template with this code in the xaml file:












<Style x:Name="GV" TargetType="telerik:GridViewHeaderCell">






<Setter Property="Template">












<ControlTemplate TargetType="telerik:GridViewHeaderCell">






<Border Height="150" Width="40">






<TextBlock Loaded="TextBlock_Loaded" HorizontalAlignment="Center" MinWidth="150" VerticalAlignment="Center" >


















<RotateTransform Angle="270" CenterX="0.5" CenterY="0.5" />






<TranslateTransform X="60" Y="100"/>






















































<MatrixTransform x:Key="RenderTransform1" />














<Grid x:Name="LayoutRoot" Background="White">






<sdk:Label Content="Data By Quarter" Height="28" HorizontalAlignment="Left" Margin="30,30,0,0" Name="Label1" VerticalAlignment="Top" Width="120" FontWeight="Bold" FontSize="16" FontFamily="Arial" />






<telerik:RadGridView HorizontalAlignment="Left" Margin="30,50,0,0" Name="QuarterlyGridView" VerticalAlignment="Top"























The cell loaded event is what actually loads the text in the headings.  It rotates the text but I have these to problems:
1-  When rotating, the text length after rotating keeps the original column width
2-  When scrolling to the right and then back to the left, the text disappears like it was wiped out

my code for the cell loaded  and text block loaded events are as follows:






Sub QuarterlyGridView_CellLoaded(ByVal sender As System.Object, ByVal e As Telerik.Windows.Controls.GridView.CellEventArgs)






Dim gridView As RadGridView = DirectCast(sender, RadGridView)






Dim cell As GridViewCell = TryCast(e.Cell, GridViewCell)






For Each mycol As GridViewColumn In gridView.Columns



mycol.HeaderCellStyle =



TryCast(Me.Resources("GV"), Style)


















End Sub












Private Sub TextBlock_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)


















Dim TxtBlock As TextBlock = TryCast(sender, TextBlock)






If n < MyCols.Count Then









TxtBlock.Text = MyCols(n)


n = n + 1





End If












Catch ex As Exception












Dim str As String = ex.Message






End Try












End Sub

Can these problems be solved?  Any suggestions?

Thanks in advance.


3 Answers, 1 is accepted

Sort by
Top achievements
Rank 1
answered on 31 Mar 2011, 03:54 PM
I solved problem 1 by putting the textblock inside a canvas.  In the xml I set the canvas minheight, and I changed the x y values to place the text at the desired position.  Also, I set the textblock size in the codebehind.  It works perfectly.  Now the only problem I have is the disappearing of the text when scrolling the page.  What I will try is to see if there is an event for the grid to detect the change in size and if so, I may need to reload the text.  In the mean time, as long as I don't post any other comments, that means I am still trying to find a solution so if you know how to solve the problem please, I will appreciate any comments.

Thanks in advance
Top achievements
Rank 1
answered on 31 Mar 2011, 04:35 PM
Placing the grid inside a stackpanel and the stackpanel inside a scrollbar and all inside a canvas, solved the problem.  Without the canvas the problem still is there.  Looks like the canvas is a separator where different rules may apply (good!).  but I did not find the way to add the srollbar to it so I added it to a stackpanel (smoke and mirrors but it works!).

Nobody replied but putting everything in writing helped me to refocus and so to find the solution.
Top achievements
Rank 1
answered on 03 Apr 2011, 04:17 AM
This is exactly what I need. Can you please share your source code for this solution.

Thank you,
Asked by
Top achievements
Rank 1
Answers by
Top achievements
Rank 1
Top achievements
Rank 1
Share this question