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

Problem with GridPersister and Header ContextMenu

1 Answer 68 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Morgan
Top achievements
Rank 1
Morgan asked on 10 Apr 2012, 04:39 PM

Hi,

For most of the grids in our project, there are more than 35 columns,to minimize the time taken to load the grid, we are trying to use the gridpersister to save the settings for individual user, so that the user can customize the number of columns they want to see everytime.
Saving the grid setting data works fine. While loading the settings data in grid, the column header and data gets wrapped  or clipped and sometimes some of the columns which is supposed to be visible are hidden and sometimes we cannot scroll to the end of grid and some columns at the end are clipped.

Below is the grid definition:

<telerik:RadGrid ID="RadReportGrid0" runat="server" AllowPaging="True" AutoSize="true"
 
        AllowSorting="True" DataSourceID="SqlDataSourceSearch" GridLines="None"
 
        Skin="Vista" AutoGenerateColumns="False"  Width="99%"
 
        onitemcreated="RadReportGrid0_ItemCreated" EnableHeaderContextMenu="True" PageSize="20"
 
        onitemdatabound="RadReportGrid0_ItemDataBound" OnPageSizeChanged="RadReportGrid0_PageSizeChanged"
 
                oninit="RadReportGrid0_Init"  AllowFilteringByColumn="false" GroupingEnabled = "false">
 
         <headercontextmenu skin="Vista">
 
             <collapseanimation duration="200" type="OutQuint">
 
             </collapseanimation>
 
         </headercontextmenu>
 
         <selecteditemstyle CssClass="SelectedItem"></selecteditemstyle>
 
  
 
         <PagerStyle AlwaysVisible="True" Position="TopAndBottom" NextPageText="Next" PrevPageText="Prev" Mode="NextPrevAndNumeric"/>
 
         <mastertableview  AutoGenerateColumns="False" datakeynames="key1,key14"
                  ClientDataKeyNames="Key1,Key14"
             datasourceid="SqlDataSourceSearch" AllowMultiColumnSorting="True">
             <norecordstemplate>
                 No record to display
 
             </norecordstemplate>
 
              <HeaderStyle HorizontalAlign="Left" VerticalAlign="Bottom" Wrap="False" />
 
              <ItemStyle Wrap="False" VerticalAlign="Top" HorizontalAlign="Left"/>
 
             <Columns>
 
                 <telerik:GridBoundColumn    DataField="Column1"  DataType="System.DateTime" FilterControlWidth="100px" FilterListOptions="VaryByDataType"
 
                     HeaderText="Upload Date" ReadOnly="True" SortExpression="Column1"   UniqueName="Column1" Groupable="False" >
 
                  </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column2" DataType="System.Decimal"
 
                     HeaderText="Column2" SortExpression="Column2" FilterControlWidth="50px"
 
                     UniqueName="Column2" Groupable="False" >
 
   
 
                 </telerik:GridBoundColumn>
 
                  <telerik:GridTemplateColumn AllowFiltering="false" Groupable="false"
 
                    <ItemTemplate>
 
                        <asp:ImageButton ID="imgActionButton" runat="server" src="_assets/img/AddRecord2.gif"></asp:ImageButton>
 
                    </ItemTemplate
 
   
 
                </telerik:GridTemplateColumn>
 
                 <telerik:GridBoundColumn   DataField="Column3" HeaderText="Column3" FilterControlWidth="50px"
 
                     ReadOnly="True" SortExpression="Column3" UniqueName="Column3"
 
                     Groupable="False" DataType="System.String"  >
 
   
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column4" HeaderText="Column4"  FilterControlWidth="50px"
 
                     SortExpression="Column4" UniqueName="Column4" Groupable="False" DataType="System.String" >
 
    
 
                 </telerik:GridBoundColumn>
 
                  <telerik:GridBoundColumn   DataField="Column5"
 
                     HeaderText="Column5" SortExpression="Column5" FilterControlWidth="50px"
 
                     UniqueName="Column5" Groupable="False" DataType="System.String"  >
 
  
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column6" HeaderText="Column6" FilterControlWidth="50px"
 
                     ReadOnly="True" SortExpression="Column6" UniqueName="Column6"
 
                     Groupable="False" DataType="System.String"  >
 
    
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column7"  FilterControlWidth="100px" DataType="System.DateTime"
 
                     HeaderText="Column7" SortExpression="Column7" FilterListOptions="VaryByDataType"
 
                     UniqueName="Column7" Groupable="False"  >
 
  
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column8" HeaderText="Column8" 
 
                     ReadOnly="True" SortExpression="Column8" UniqueName="Column8" DataType="System.String">
 
  
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridTemplateColumn UniqueName="Column9" DataField="Column9" Groupable="False" DataType="System.String"    FilterControlWidth="100px" >
 
                        <HeaderTemplate>
 
                            <asp:Label ID="LabelAccountName" runat="server" Text="Account"></asp:Label>
 
                        </HeaderTemplate>
 
                        <ItemTemplate>
 
                            <asp:hyperlink id="AccountNameColumn" runat="server"
 
                                text='<%# Eval("AccountName")%>'></asp:hyperlink>
 
                        </ItemTemplate>
 
  
 
                 </telerik:GridTemplateColumn>
 
                 <telerik:GridBoundColumn   DataField="Column10"   FilterControlWidth="100px"
 
                     HeaderText="Column10" SortExpression="Column10"
 
                     UniqueName="Column10" Groupable="False" DataType="System.String">
 
  
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column11" HeaderText="Column11"   FilterControlWidth="80px"
 
                     SortExpression="Column11" UniqueName="Column11" Groupable="False" DataType="System.String">
 
                   
 
     
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column12" HeaderText="Column12"   FilterControlWidth="80px"
 
                     SortExpression="Column12" UniqueName="Column12" Groupable="False" DataType="System.Int16">
 
                       
 
     
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridTemplateColumn UniqueName="Column13" DataField="Column13" Groupable="False" DataType="System.String" FilterControlWidth="100px" >
 
                        <HeaderTemplate>
 
                            <asp:Label ID="LabelSerialNumber" runat="server" Text="Serial Number"></asp:Label>
 
                        </HeaderTemplate>
 
                        <ItemTemplate>
 
                            <asp:hyperlink id="SerialNumberColumn" runat="server"
 
                                text='<%# Eval("SerialNumber")%>'></asp:hyperlink>
 
                        </ItemTemplate>
 
                       
 
        
 
                 </telerik:GridTemplateColumn>
 
                 <telerik:GridBoundColumn    DataField="Column14"     FilterControlWidth="100px" DataType="System.DateTime"
 
                     HeaderText="Column14" SortExpression="Column14" FilterListOptions="VaryByDataType"
 
                     UniqueName="Column14" DataFormatString="{0:d}" Groupable="False">
 
                      
 
     
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column15" HeaderText="Column15"
 
                     SortExpression="Column15" UniqueName="Column15" Groupable="False" DataType="System.String" FilterControlWidth="80px"  >
 
                     
 
     
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column16"
 
                     HeaderText="Column16" SortExpression="Column16"
 
                     UniqueName="Column16" Groupable="False"   >
 
                     
 
     
 
                 </telerik:GridBoundColumn>
 
                   <telerik:GridBoundColumn   DataField="Column17" HeaderText="Column17" 
 
                     SortExpression="Column17" UniqueName="Column17" >
 
                      
 
     
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column18"   FilterControlWidth="80px"
 
                     HeaderText="Column18" SortExpression="Column18"
 
                     UniqueName="Column18" Groupable="False" DataType="System.String">
 
                 
 
     
 
                 </telerik:GridBoundColumn>
 
                  
 
              
 
                 <telerik:GridBoundColumn   DataField="Column19"   FilterControlWidth="80px"
 
                     HeaderText="Column19" SortExpression="Column19" DataType="System.String"
 
                     UniqueName="Column19" Groupable="False">
 
                    
 
     
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column20" DataType="System.Decimal"   FilterControlWidth="80px"
 
                     HeaderText="Column20" ReadOnly="True" SortExpression="Column20"
 
                     UniqueName="Column20" Display="True" Groupable="False"
 
                     Visible="True">
 
                    
 
      
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column21" DataType="System.Decimal"   FilterControlWidth="80px"
 
                     HeaderText="Column21" ReadOnly="True" SortExpression="Column21"
 
                     UniqueName="Column21" Display="True" Groupable="False"
 
                     Visible="True">
 
                     
 
     
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column22" DataType="System.Decimal"   FilterControlWidth="80px" 
 
                     HeaderText="Column22" ReadOnly="True" SortExpression="Column22"
 
                     UniqueName="Column22" Display="True" Groupable="False"
 
                     Visible="True">
 
                  
 
     
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column23" DataType="System.Decimal"   FilterControlWidth="80px"
 
                     HeaderText="Column23" ReadOnly="True" SortExpression="Column23"
 
                     UniqueName="Column23" Display="True" Groupable="False"
 
                     Visible="True">
 
                     
 
     
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column24" DataType="System.Decimal"   FilterControlWidth="80px"  
 
                     HeaderText="Column23" ReadOnly="True" SortExpression="Column23"
 
                     UniqueName="Column23" Display="True" Groupable="False"
 
                     Visible="True">
 
                       
 
     
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column24" DataType="System.Decimal"   FilterControlWidth="80px"  
 
                     HeaderText="Column24" ReadOnly="True" SortExpression="Column24"
 
                     UniqueName="Column24" Display="True" Groupable="False"
 
                     Visible="True">
 
                     
 
    
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column25" DataType="System.Decimal"   FilterControlWidth="80px"
 
                     HeaderText="Column25" ReadOnly="True" SortExpression="Column25"
 
                     UniqueName="Column25" Display="True" Groupable="False" DataFormatString="{0:F2}hr"
 
                     Visible="True">
 
                     
 
    
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column26" DataType="System.Decimal"   FilterControlWidth="80px"
 
                     HeaderText="Column26" ReadOnly="True" SortExpression="Column26"
 
                     UniqueName="Column26" Display="True" Groupable="False" DataFormatString="{0:F2}%"
 
                     Visible="True">
 
                     
 
     
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridCalculatedColumn HeaderText="Column27" UniqueName="Column27" DataType="System.Double"  
 
                    DataFormatString="{0:F2}hr"
 
                   DataFields="Column27,Column26" Expression="{0}*100/{1}"
 
   
 
                 </telerik:GridCalculatedColumn>
 
                 <telerik:GridBoundColumn   DataField="Column28"
 
                     HeaderText="Column28" ReadOnly="True" SortExpression="Column28"
 
                     UniqueName="Column28" Display="True" Groupable="False"
 
                     Visible="True">
 
                      
 
     
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column29" 
 
                     HeaderText="Column29" ReadOnly="True" SortExpression="Column29"
 
                     UniqueName="Column29" Display="True" Groupable="False"
 
                     Visible="True">
 
                    
 
     
 
                 </telerik:GridBoundColumn>
 
                   
 
                 <telerik:GridBoundColumn   DataField="Column30" 
 
                     HeaderText="Column30" ReadOnly="True" SortExpression="Column30"
 
                     UniqueName="Column30" Display="True" Groupable="False"
 
                     Visible="True">
 
                     
 
     
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column31" 
 
                     HeaderText="Column31" ReadOnly="True" SortExpression="Column31"
 
                     UniqueName="Column31" Display="True" Groupable="False"
 
                     Visible="True">
 
                       
 
    
 
                 </telerik:GridBoundColumn>
 
                 <telerik:GridBoundColumn   DataField="Column32" 
 
                     HeaderText="Column32" ReadOnly="True" SortExpression="Column32"
 
                     UniqueName="Column32" Display="True" Groupable="False"
 
                     Visible="True">
 
                     
 
     
 
                 </telerik:GridBoundColumn>
 
                   
 
             </Columns>
 
         </mastertableview>
 
         <ClientSettings AllowDragToGroup="True" AllowColumnsReorder="True"
 
             ReorderColumnsOnClient="True">
 
             <Selecting AllowRowSelect="True" />
 
             <Scrolling AllowScroll="true" UseStaticHeaders="True" />
 
             <ClientEvents OnRowContextMenu="RowContextMenu"  />
 
         </ClientSettings>
 
         <filtermenu Skin="Vista"  >
 
             <collapseanimation duration="200" type="OutQuint">
 
             </collapseanimation>
 
         </filtermenu>
 
    </telerik:RadGrid>

Any of these wrapping or clipping problem happens if any one of the column is unchecked from the Header Context Menu, if we check all the visible columns and save the settings, the grid alignment comes back to normal.

Thanks.

1 Answer, 1 is accepted

Sort by
0
Tsvetina
Telerik team
answered on 15 Apr 2012, 07:03 PM
Hi Morgan,

Can you confirm whether the issue replicates if you set UseStaticHeaders="false"? If this fixes the problem, try running your application with the latest version of RadControls (2012.1.411)  and see how it goes.

Regards,
Tsvetina
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
Tags
Grid
Asked by
Morgan
Top achievements
Rank 1
Answers by
Tsvetina
Telerik team
Share this question
or