<!--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"> <html xmlns="http://www.w3.org/1999/xhtml"> <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) 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".
Thanks.