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

Radgrid Issue with horizontal scroll, Merged Headers and pagination.

1 Answer 135 Views
Grid
This is a migrated thread and some comments may be shown as answers.
kalyan gupta
Top achievements
Rank 1
kalyan gupta asked on 09 Mar 2011, 06:39 AM

Hi,

1) I want a header in which there will be one main heading and under it there can be sub headings, the main header will span across its multiple sub headings, user can sort the grid by clicking on the sub headings. Please refer to the "UI.jpg"

2) The requirement is like i will be needing the Radgrid as usercontrol, which we will bind on Page. when we run the page, the screen looks fine except for the Merged Columns where in we need the headings and the Subheadeing, refer "Screenshot1.JPG"

The second issue which we I am facing is, The rad grd will have horizontal scroll and first 3 columns would be frozed.
But when we try to freeze the columns we face the following issues:

a) When we scroll, the complete alignment of the grid gets messed up, and one Grid line remains there and shows up in the middle of all scrolling columns. Refer "Screenshot2.JPG" .

b) After we scroll, the horizontal scroll itself disappears. Refer "Screenshot3.JPG" .

c) If we change the page size in pagination, the pagination also disappears. Refer "Screenshot4.JPG" .

Please refer to the code as well, We have created a user control "uclFleet.ascx" which we register in our page "Test_Fleet.aspx".

Please reply on an urgent basis.

Thanks.

<!--User control .ascx file-->
    
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="uclFleet.ascx.cs" Inherits="UserControls_uclFleet" %> 
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> 
    
    
<telerik:RadScriptManager runat="server" ID="RadScriptManager1" /> 
<script type="text/javascript"
    function fnGridCreated(sender, args) { 
           
        var scrollArea = sender.GridDataDiv; 
        var dataHeight = sender.get_masterTableView().get_element().clientHeight; 
        if (dataHeight < 350) { 
            scrollArea.style.height = dataHeight + 10 + "px"; 
        
    
</script> 
       
                <telerik:RadGrid ID="tlrkDgrFleet" runat="server" EnableViewState="true" CellPadding="0"
                    CellSpacing="0" GridLines="Both" Width="750px"
                    Skin="Office2007" HeaderStyle-Font-Size="8pt" 
                    HeaderStyle-Font-Bold="true" AllowPaging="true" ShowHeader="true" OnNeedDataSource="tlrkDgrFleet_NeedDataSource" OnItemDataBound="tlrkDgrFleet_OnItemDataBound"
                        
                    <MasterTableView CellPadding="0" CellSpacing="0" Width="99%" TableLayout="Fixed" ShowHeader="true" AutoGenerateColumns="false"
                        AllowPaging="true" ShowFooter="false"
                            
                        <Columns
                            <telerik:GridTemplateColumn HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="50px"
                                UniqueName="SerialNo" ItemStyle-HorizontalAlign="Right"
                                <HeaderTemplate
                                    <table border="0" cellpadding="0" cellspacing="0" width="100%"
                                        <tr
                                            <td style="border: 0" rowspan="2"
                                                Serial 
                                                <br /> 
                                                No. 
                                            </td
                                        </tr
                                    </table
                                </HeaderTemplate
                                   
                                <ItemTemplate
                                    <asp:Label ID="lblSerialNo" runat="server"><%# Eval("A") %></asp:Label
                                </ItemTemplate
                            </telerik:GridTemplateColumn
                            <telerik:GridTemplateColumn HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="100px"
                                UniqueName="ColHeader" ItemStyle-HorizontalAlign="left"
                               <HeaderTemplate
                                    <table border="0" cellpadding="0" cellspacing="0" width="100%"
                                        <tr
                                            <td style="width:100%" colspan="2"
                                                Column header 
                                                <br /><hr /> 
                                            </td
                                        </tr
                                        <tr
                                            <td
                                                Sub Col A 
                                            </td
                                            <td
                                                Sub Col B 
                                            </td
                                        </tr>                                         
                                    </table
                                </HeaderTemplate
                                <ItemTemplate
                                 <table border="0" cellpadding="0" cellspacing="0"
                                            
                                        <tr
                                            <td
                                                <asp:Label ID="lblA" runat="server" ><%# Eval("B") %></asp:Label
                                            </td
                                            <td
                                                <asp:Label ID="lblE" runat="server"><%# Eval("C") %></asp:Label
                                            </td
                                        </tr>                                         
                                    </table
                                        
                                    
                                    
                                       
                                </ItemTemplate
                            </telerik:GridTemplateColumn
                           <telerik:GridTemplateColumn HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="100px"
                                UniqueName="Delivery" ItemStyle-HorizontalAlign="left"
                               <HeaderTemplate
                                    <table border="0" cellpadding="0" cellspacing="0" width="100%"
                                        <tr
                                            <td style="border: 1" colspan="2"
                                                Delivery<br /><hr /> 
                                            </td
                                        </tr
                                        <tr
                                            <td
                                                Owner 
                                            </td
                                            <td
                                                Operator 
                                            </td
                                        </tr>                                         
                                    </table
                                </HeaderTemplate
                                <ItemTemplate
                                    <asp:Label ID="lblOwn" runat="server"><%# Eval("D") %></asp:Label
                                </ItemTemplate
                                <ItemTemplate
                                    <asp:Label ID="lblOper" runat="server"><%# Eval("E") %></asp:Label
                                </ItemTemplate
                            </telerik:GridTemplateColumn
                                
                            <telerik:GridTemplateColumn HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="150px"
                                UniqueName="Current" ItemStyle-HorizontalAlign="left"
                               <HeaderTemplate
                                    <table border="0" cellpadding="0" cellspacing="0"
                                        <tr
                                            <td style="border:0" colspan="3"
                                                Current<br /><hr /> 
                                            </td
                                        </tr
                                        <tr
                                            <td
                                                Own 
                                            </td
                                            <td
                                                LEAST 
                                            </td
                                            <td
                                                SLE123 
                                            </td
                                        </tr>                                         
                                    </table
                                </HeaderTemplate
                                <ItemTemplate
                                   <table border="0" cellpadding="0" cellspacing="0"
                                           
                                        <tr
                                            <td
                                                <asp:Label ID="lblCurrOwn" runat="server"><%# Eval("F") %></asp:Label
                                            </td
                                            <td
                                                <asp:Label ID="lblCurrLE" runat="server"><%# Eval("G")%></asp:Label
                                            </td
                                            <td
                                                <asp:Label ID="lblCurrSLE" runat="server"><%# Eval("H") %></asp:Label
                                            </td
                                        </tr>                                         
                                    </table
                                        
                                </ItemTemplate>                                 
                                    
                            </telerik:GridTemplateColumn
                             <telerik:GridTemplateColumn HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="50px"
                                UniqueName="Future" ItemStyle-HorizontalAlign="left"
                                <HeaderTemplate
                                    <table border="0" cellpadding="0" cellspacing="0" width="100%"
                                        <tr
                                            <td style="border: 0" rowspan="2"
                                                Future 
                                                <br /> 
                                                Owner 
                                            </td
                                        </tr
                                    </table
                                </HeaderTemplate
                                <ItemTemplate
                                    <asp:Label ID="lblr" runat="server"><%# Eval("I") %></asp:Label
                                </ItemTemplate
                            </telerik:GridTemplateColumn
                            <telerik:GridTemplateColumn  HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="50px"
                                UniqueName="Bus" ItemStyle-HorizontalAlign="left"
                                <HeaderTemplate
                                    <table border="0" cellpadding="0" cellspacing="0" width="100%"
                                        <tr
                                            <td style="border: 0" rowspan="2"
                                                Bus 
                                                <br /> 
                                                Contract 
                                            </td
                                        </tr
                                    </table
                                </HeaderTemplate
                                <ItemTemplate
                                    <asp:Label ID="lblBusCon" runat="server"><%# Eval("J") %></asp:Label
                                </ItemTemplate
                            </telerik:GridTemplateColumn
                            <telerik:GridTemplateColumn  HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="50px"
                                UniqueName="Number" ItemStyle-HorizontalAlign="left"
                                <HeaderTemplate
                                    <table border="0" cellpadding="0" cellspacing="0" width="100%"
                                        <tr
                                            <td style="border: 0" rowspan="2"
                                                House 
                                                <br /> 
                                                Number 
                                            </td
                                        </tr
                                    </table
                                </HeaderTemplate
                                <ItemTemplate
                                    <asp:Label ID="lblNo" runat="server"><%# Eval("K") %></asp:Label
                                </ItemTemplate
                            </telerik:GridTemplateColumn
                            <telerik:GridTemplateColumn  HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="50px"
                                UniqueName="CurrentSet" ItemStyle-HorizontalAlign="left"
                                <HeaderTemplate
                                    <table border="0" cellpadding="0" cellspacing="0" width="100%"
                                        <tr
                                            <td style="border: 0" rowspan="2"
                                                Current 
                                                <br /> 
                                                Set. 
                                            </td
                                        </tr
                                    </table
                                </HeaderTemplate
                                <ItemTemplate
                                    <asp:Label ID="lblCurrentSet" runat="server"><%# Eval("L") %></asp:Label
                                </ItemTemplate
                            </telerik:GridTemplateColumn
                            <telerik:GridTemplateColumn  HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="50px"
                                UniqueName="LaneNo" ItemStyle-HorizontalAlign="left"
                                <HeaderTemplate
                                    <table border="0" cellpadding="0" cellspacing="0" width="100%"
                                        <tr
                                            <td style="border: 0" rowspan="2"
                                                Lane 
                                                <br /> 
                                                No. 
                                            </td
                                        </tr
                                    </table
                                </HeaderTemplate
                                <ItemTemplate
                                    <asp:Label ID="lblLaneNo" runat="server"><%# Eval("M") %></asp:Label
                                </ItemTemplate
                            </telerik:GridTemplateColumn
                            <telerik:GridTemplateColumn  HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="50px"
                                UniqueName="PurDate" ItemStyle-HorizontalAlign="center"
                                <HeaderTemplate
                                    <table border="0" cellpadding="0" cellspacing="0" width="100%"
                                        <tr
                                            <td style="border: 0" rowspan="2"
                                                Purchase 
                                                <br /> 
                                                Date 
                                            </td
                                        </tr
                                    </table
                                </HeaderTemplate
                                <ItemTemplate
                                    <asp:Label ID="lblDeliveryDate" runat="server"><%# Eval("N") %></asp:Label
                                </ItemTemplate
                            </telerik:GridTemplateColumn
                                
                        </Columns
                    </MasterTableView
                   <ClientSettings>   
        <Scrolling AllowScroll="true" FrozenColumnsCount= "3" UseStaticHeaders="true" SaveScrollPosition="true" />   
  <ClientEvents OnGridCreated="fnGridCreated" /> 
    </ClientSettings
    
                </telerik:RadGrid>
//User Control uclFleet.ascx.cs file 
    
using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using Telerik.Web.UI; 
using System.Text; 
    
public partial class UserControls_uclFleet : System.Web.UI.UserControl 
        
    protected void tlrkDgrFleet_NeedDataSource(object source, 
         Telerik.Web.UI.GridNeedDataSourceEventArgs e) 
    
        DataTable dt = new DataTable(); 
        dt.Columns.Add("A"); 
        dt.Columns.Add("B");      
        dt.Columns.Add("C"); 
        dt.Columns.Add("D"); 
        dt.Columns.Add("E"); 
        dt.Columns.Add("F"); 
        dt.Columns.Add("G"); 
        dt.Columns.Add("H"); 
        dt.Columns.Add("I"); 
        dt.Columns.Add("J"); 
        dt.Columns.Add("K"); 
        dt.Columns.Add("L"); 
        dt.Columns.Add("M"); 
        dt.Columns.Add("N"); 
        for (int i = 0; i < 10; i++) 
        
            DataRow dr; 
            dr = dt.NewRow(); 
            dr["A"] = "1234"; 
            dr["B"] = "ABCD - hjkl"; 
            dr["C"] = "123-90"; 
            dr["D"] = "13434"; 
            dr["E"] = "1545"; 
            dr["F"] = "1656"; 
            dr["G"] = "1453"; 
            dr["H"] = "15435"; 
            dr["I"] = "5341"; 
            dr["J"] = "1345"; 
            dr["K"] = "135"; 
            dr["L"] = "135"; 
            dr["M"] = "1345"; 
            dr["N"] = "11/07/2010"; 
    
            dt.Rows.Add(dr); 
            DataRow dr1; 
            dr1 = dt.NewRow(); 
            dr1["A"] = "1234"; 
            dr1["B"] = "AWER - POUT"; 
            dr1["C"] = "123-90"; 
            dr1["D"] = "13434"; 
            dr1["E"] = "1545"; 
            dr1["F"] = "1656"; 
            dr1["G"] = "ASD"; 
            dr1["H"] = "15435"; 
            dr1["I"] = "DSFSF"; 
            dr1["J"] = "1345"; 
            dr1["K"] = "135"; 
            dr1["L"] = "EWEWR"; 
            dr1["M"] = "1345"; 
            dr1["N"] = "11/07/2010"; 
    
            dt.Rows.Add(dr1); 
        
        tlrkDgrFleet.DataSource = dt; 
    
    
    protected void tlrkDgrFleet_OnItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e) 
    
           
    
}
<!-- Test_Fleet.aspx-->
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test_Fleet.aspx.cs" Inherits="Test_Fleet" %> 
<%@ Register Src="~/UserControls/uclFleet.ascx" TagName="uclFleet" TagPrefix="uc2" %> 
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> 
    
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    
<head runat="server"
    
    <title></title
</head
<body
    <form id="form1" runat="server"
      
<table style="table-layout:fixed" width="100%"><tr><td
    <uc2:uclFleet ID="uclFleet" runat="server" />  </td></tr
   </table
     
       
    </form
</body
</html>

1 Answer, 1 is accepted

Sort by
0
Pavlina
Telerik team
answered on 09 Mar 2011, 08:57 AM
Hello Kalyan,

Please refer to the following code library example which presents how to perform individual sorting and filtering for sub-columns in template column (with multi-header appearance).
Individual filtering and sorting for "sub-columns" in template column

Regarding the second issue - Merged headers with frozen columns are not supported. You can refer to  Unsupported scenarios section in this help article for more information.

Greetings,
Pavlina
the Telerik team
Registration for Q1 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting March 21st and book your seat for a walk through all the exciting stuff we ship with the new release!
Tags
Grid
Asked by
kalyan gupta
Top achievements
Rank 1
Answers by
Pavlina
Telerik team
Share this question
or