Telerik Forums
UI for ASP.NET AJAX Forum
6 answers
120 views
I am experiencing an issue when using UseStaticHeaders="true". The headers do not fill the width of the grid and are therefore misaligned with the columns which are auto-sized. When clicking on a header to sort the column, the issue is resolved. TableLayout="Auto" on MasterTableView - I have tried all of the things recommended in similar posts but have not had success. The issue does not occur in Firefox, but occurs in IE 7,8
Pavlina
Telerik team
 answered on 03 Feb 2010
1 answer
95 views
Dear experts,

         I have RadGrid1 and RadGrid2, both of them synchronised (thanks to Lenny_shp).

         When I put borders in both grids, I see that RadGrid1's height is increasing while expanding the master rows : this is due to a border-width around child rows. So the more parent rows you expand and the more the radgrid1 increases in height.

         I was asked to have the both radgrids synchronised, that is : having the same height for each row in both grids.

         Is it possible to have vertical lines aligned when expanding master rows in RadGrid1 ?
         GetConnectionString() method must be changed in the code below.

     One strange thing : if I put "autogeneratecolumns = false" and add <columns> ... </columns> in RadGrid1, then I have the same height as RadGrid2. But then the problem is : the cells in RadGrid1 are not aligned when rows are expanded ... The dream is to get the both grides aligned and also the cells in RadGrid1 aligned, expanded or not ... I'm trying ...

thanks,
Panin

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="RadGridSolutionTelerik.aspx.cs" Inherits="RadGridSolutionTelerik" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">  
  
  
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>  
  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
   <title></title>  
    <style type="text/css">  
      .StaticColumn  
      {      
          font-family: Arial,Verdana, Helvetica;  
        font-size: 14px;  
        font-weight: normal;     
          border: none;  
          position: relative;  
      }   
  
    </style>       
</head>  
<body>  
    <form runat="server" id="mainForm" method="post">          
      <telerik:RadScriptManager ID="RadScriptManager1" runat="server" />  
        <!-- content start -->  
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">  
            <AjaxSettings>  
                <telerik:AjaxSetting AjaxControlID="RadGrid1">  
                    <UpdatedControls>  
                        <telerik:AjaxUpdatedControl ControlID="RadGrid1" />  
                        <telerik:AjaxUpdatedControl ControlID="RadGrid2" />  
                    </UpdatedControls>  
                </telerik:AjaxSetting>  
            </AjaxSettings>  
        </telerik:RadAjaxManager>  
        <table border="1" cellspacing="0" cellpadding="0" style="height:100%">   
        <tr>  
        <td style="vertical-align:top;height:100%">          
        <telerik:RadGrid ID="RadGrid1" OnPreRender="RadGrid1_PreRender" AutoGenerateColumns="False"  runat="server" DataSourceID="SqlDataSource1" OnColumnCreated="RadGrid1_ColumnCreated"  
            OnItemCreated="RadGrid1_ItemCreated" OnItemDataBound="RadGrid1_ItemDataBound" GridLines="Both">  
            <MasterTableView HierarchyDefaultExpanded="false" EnableNoRecordsTemplate="false" HierarchyLoadMode="ServerBind" AllowSorting="true" Width="800px"  
                DataKeyNames="EmployeeID">  
                <ItemStyle Wrap="false" Width="200px" Height="17px" BorderStyle="Groove" BorderWidth="1"/>  
                <AlternatingItemStyle Wrap="false" Width="200px" Height="17px" BorderStyle="Groove" BorderWidth="1"/>  
                <HeaderStyle Wrap="false" Width="1500px"/>  
                  
                <SelfHierarchySettings ParentKeyName="ReportsTo" KeyName="EmployeeID"/> 
                <GroupHeaderItemStyle BorderColor="red" BorderWidth="0"/> 
                <ExpandCollapseColumn ItemStyle-BackColor="red"></ExpandCollapseColumn> 
                <GroupHeaderItemStyle BackColor="green" /> 
                <RowIndicatorColumn HeaderStyle-BackColor="Blue"></RowIndicatorColumn> 
                <Columns>  
                    <telerik:GridBoundColumn SortExpression="EmployeeID" HeaderText="EmployeeID" HeaderButtonType="TextButton"  
                        DataField="EmployeeID" UniqueName="EmployeeID" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="LastName" HeaderText="LastName" HeaderButtonType="TextButton"  
                        DataField="LastName" UniqueName="LastName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="FirstName" HeaderText="FirstName" HeaderButtonType="TextButton"  
                        DataField="FirstName" UniqueName="FirstName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="Title" HeaderText="Title" HeaderButtonType="TextButton"  
                        DataField="Title" UniqueName="Title" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="ReportsTo" HeaderText="ReportsTo" HeaderButtonType="TextButton"  
                        DataField="ReportsTo" UniqueName="ReportsTo" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>   
                </Columns>  
            </MasterTableView>  
              
            <ClientSettings AllowExpandCollapse="true">              
            </ClientSettings>  
        </telerik:RadGrid>  
        </td>  
        <td class="StaticColumn" style="vertical-align:top;height:100%;">   
        <telerik:RadGrid ID="RadGrid2" ShowStatusBar="true"  
            runat="server" AutoGenerateColumns="False" PageSize="10" AllowSorting="True" AllowMultiRowSelection="False" Width="800px"  
            AllowPaging="false" GridLines="Both">  
            <PagerStyle Mode="NumericPages"></PagerStyle>  
            <MasterTableView ItemStyle-Wrap="false" Height="20px" HierarchyLoadMode="ServerBind" CanRetrieveAllData="true">  
                <ItemStyle Wrap="false" Width="200px" Height="17px" BorderWidth="1" BorderStyle="Groove" />  
                <AlternatingItemStyle Wrap="false" Width="200px" Height="17px" BorderWidth="1" BorderStyle="Groove"/>                                
                <Columns>  
                    <telerik:GridBoundColumn SortExpression="EmployeeID" HeaderText="EmployeeID" HeaderButtonType="TextButton"  
                        DataField="EmployeeID" UniqueName="EmployeeID" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="LastName" HeaderText="LastName" HeaderButtonType="TextButton"  
                        DataField="LastName" UniqueName="LastName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="FirstName" HeaderText="FirstName" HeaderButtonType="TextButton"  
                        DataField="FirstName" UniqueName="FirstName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="Title" HeaderText="Title" HeaderButtonType="TextButton"  
                        DataField="Title" UniqueName="Title" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="ReportsTo" HeaderText="ReportsTo" HeaderButtonType="TextButton"  
                        DataField="ReportsTo" UniqueName="ReportsTo" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>   
                    <telerik:GridBoundColumn SortExpression="EmployeeID" HeaderText="EmployeeID" HeaderButtonType="TextButton"  
                        DataField="EmployeeID" UniqueName="EmployeeID" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="LastName" HeaderText="LastName" HeaderButtonType="TextButton"  
                        DataField="LastName" UniqueName="LastName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="FirstName" HeaderText="FirstName" HeaderButtonType="TextButton"  
                        DataField="FirstName" UniqueName="FirstName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="Title" HeaderText="Title" HeaderButtonType="TextButton"  
                        DataField="Title" UniqueName="Title" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="ReportsTo" HeaderText="ReportsTo" HeaderButtonType="TextButton"  
                        DataField="ReportsTo" UniqueName="ReportsTo" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>       
                    <telerik:GridBoundColumn SortExpression="EmployeeID" HeaderText="EmployeeID" HeaderButtonType="TextButton"  
                        DataField="EmployeeID" UniqueName="EmployeeID" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="LastName" HeaderText="LastName" HeaderButtonType="TextButton"  
                        DataField="LastName" UniqueName="LastName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="FirstName" HeaderText="FirstName" HeaderButtonType="TextButton"  
                        DataField="FirstName" UniqueName="FirstName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="Title" HeaderText="Title" HeaderButtonType="TextButton"  
                        DataField="Title" UniqueName="Title" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="ReportsTo" HeaderText="ReportsTo" HeaderButtonType="TextButton"  
                        DataField="ReportsTo" UniqueName="ReportsTo" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>   
                    <telerik:GridBoundColumn SortExpression="EmployeeID" HeaderText="EmployeeID" HeaderButtonType="TextButton"  
                        DataField="EmployeeID" UniqueName="EmployeeID" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="LastName" HeaderText="LastName" HeaderButtonType="TextButton"  
                        DataField="LastName" UniqueName="LastName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="FirstName" HeaderText="FirstName" HeaderButtonType="TextButton"  
                        DataField="FirstName" UniqueName="FirstName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="Title" HeaderText="Title" HeaderButtonType="TextButton"  
                        DataField="Title" UniqueName="Title" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>  
                    <telerik:GridBoundColumn SortExpression="ReportsTo" HeaderText="ReportsTo" HeaderButtonType="TextButton"  
                        DataField="ReportsTo" UniqueName="ReportsTo" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove">  
                    </telerik:GridBoundColumn>                                                          
                </Columns>  
            </MasterTableView>  
            <clientsettings allowexpandcollapse="false" >                  
                    <Scrolling AllowScroll="true" UseStaticHeaders="True"></Scrolling>  
            </clientsettings>  
        </telerik:RadGrid>  
        </td>  
        </tr>  
        </table>          
        <asp:SqlDataSource ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"  
            ProviderName="System.Data.SqlClient" SelectCommand="SELECT EmployeeID, LastName, FirstName, Title, ReportsTo FROM Employees"  
            runat="server"></asp:SqlDataSource>  
        <!-- content end -->  
    </form>  
</body>  
</html>  
 
 
 
 
 
 
 
 
 
 
 
 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using Telerik.Web.UI; 
using System.Reflection; 
using System.Data; 
using System.Data.SqlClient;  
 
public partial class RadGridSolutionTelerik : System.Web.UI.Page 
 
    public void Page_Load(object sender, EventArgs e) 
    { 
        bindGrid2(); 
        if (Assembly.GetAssembly(typeof(ScriptManager)).FullName.IndexOf("3.5") != -1) 
        { 
            RadGrid1.MasterTableView.FilterExpression = @"it[""ReportsTo""] = Convert.DBNull"; 
        } 
        else 
        { 
            RadGrid1.MasterTableView.FilterExpression = "ReportsTo IS NULL"
        } 
    } 
 
    public void Page_PreRenderComplete(object sender, EventArgs e) 
    { 
        HideExpandColumnRecursive(RadGrid1.MasterTableView); 
 
        string ActualNodes = string.Empty; 
 
        foreach (GridDataItem dataItem in RadGrid1.Items) 
        { 
            if (dataItem.Visible) 
            { 
                ActualNodes += dataItem["EmployeeID"].Text + ","; 
            } 
        } 
 
 
        if (ActualNodes.Length > 0) 
            ActualNodesActualNodes = ActualNodes.Substring(0, ActualNodes.Length - 1); 
 
        RadGrid2.Controls.Clear(); 
        RadGrid2.DataSource = getDetails(ActualNodes); 
        RadGrid2.DataBind(); 
 
 
    } 
 
    public void HideExpandColumnRecursive(GridTableView tableView) 
    { 
        GridItem[] nestedViewItems = tableView.GetItems(GridItemType.NestedView); 
        foreach (GridNestedViewItem nestedViewItem in nestedViewItems) 
        { 
            foreach (GridTableView nestedView in nestedViewItem.NestedTableViews) 
            { 
                nestedView.Style["border"] = "0"; 
 
                Button MyExpandCollapseButton = (Button)nestedView.ParentItem.FindControl("MyExpandCollapseButton"); 
                if (nestedView.Items.Count == 0) 
                { 
                    if (MyExpandCollapseButton != null) 
                    { 
                        MyExpandCollapseButton.Style["visibility"] = "hidden"; 
                    } 
                    nestedViewItem.Visible = false
                } 
                else 
                { 
                    if (MyExpandCollapseButton != null) 
                    { 
                        MyExpandCollapseButton.Style.Remove("visibility"); 
                    } 
                } 
 
                if (nestedView.HasDetailTables) 
                { 
                    HideExpandColumnRecursive(nestedView); 
                } 
            } 
        } 
    } 
 
    protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e) 
    { 
        CreateExpandCollapseButton(e.Item, "EmployeeID"); 
 
        if (e.Item is GridHeaderItem && e.Item.OwnerTableView != RadGrid1.MasterTableView) 
        { 
            e.Item.Style["display"] = "none"; 
        } 
 
        if (e.Item is GridNestedViewItem) 
        { 
            e.Item.Cells[0].Visible = false
        } 
    } 
 
    protected void RadGrid1_ColumnCreated(object sender, GridColumnCreatedEventArgs e) 
    { 
        if (e.Column is GridExpandColumn) 
        { 
            e.Column.Visible = false
        } 
        else if (e.Column is GridBoundColumn) 
        { 
            e.Column.HeaderStyle.Width = Unit.Pixel(100); 
        } 
    } 
 
    protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) 
    { 
        CreateExpandCollapseButton(e.Item, "EmployeeID"); 
    } 
 
    public void CreateExpandCollapseButton(GridItem item, string columnUniqueName) 
    { 
        if (item is GridDataItem) 
        { 
            if (item.FindControl("MyExpandCollapseButton") == null) 
            { 
                Button button = new Button(); 
                button.Click += new EventHandler(button_Click); 
                button.CommandName = "ExpandCollapse"
                button.CssClass = (item.Expanded) ? "rgCollapse" : "rgExpand"; 
                button.ID = "MyExpandCollapseButton"
 
                if (item.OwnerTableView.HierarchyLoadMode == GridChildLoadMode.Client) 
                { 
                    string script = String.Format(@"$find(""{0}"")._toggleExpand(this, event); return false;", item.Parent.Parent.ClientID); 
 
                    button.OnClientClick = script
                } 
                /* 
                int level = item.ItemIndexHierarchical.Split(':').Length; 
                if (level > 1) 
                { 
                    button.Style["margin-left"] = level + 10 + "px"; 
                    button.Style["height"] = "15px"; 
                } 
                */ 
                 
                TableCell cell = ((GridDataItem)item)[columnUniqueName]; 
                cell.Controls.Add(button); 
                //LiteralControl liSpace = new LiteralControl("&nbsp;"); 
                //cell.Controls.Add(liSpace);                 
                cell.Controls.Add(new LiteralControl(((GridDataItem)item).GetDataKeyValue(columnUniqueName).ToString())); 
                cell.Style["height"] = "15px"; 
                 
            } 
        } 
    } 
 
    protected void RadGrid1_PreRender(object sender, EventArgs e) 
    { 
 
        string ActualNodes = string.Empty; 
 
        foreach (GridDataItem dataItem in RadGrid1.Items) 
        { 
            if (dataItem.Visible) 
            { 
                ActualNodes += dataItem["EmployeeID"].Text + ","; 
            } 
        } 
 
 
        if (ActualNodes.Length > 0) 
            ActualNodesActualNodes = ActualNodes.Substring(0, ActualNodes.Length - 1); 
 
        RadGrid2.Controls.Clear(); 
        RadGrid2.DataSource = getDetails(ActualNodes); 
        RadGrid2.DataBind(); 
        //Response.Write("<script> alert(" + sTest + ");</script>");  
    } 
 
 
    void button_Click(object sender, EventArgs e) 
    { 
        ((Button)sender).CssClass = (((Button)sender).CssClass == "rgExpand") ? "rgCollapse" : "rgExpand"; 
    } 
 
 
    private void bindGrid2() 
    { 
 
        RadGrid2.Controls.Clear(); 
        string initialNodes = string.Empty; 
        for (int m = 0; m < RadGrid1.Items.Count; m++) 
        { 
            if (!RadGrid1.Items[m]["EmployeeID"].Text.ToLower().Equals("&nbsp;") && RadGrid1.Items[m].Visible) 
                initialNodes += RadGrid1.Items[m]["EmployeeID"].Text + ","; 
        } 
 
        if (initialNodes.Length > 0) 
        { 
            RadGrid2.DataSource = getEmployees(initialNodes.Substring(0, initialNodes.Length - 1)); 
        } 
        else 
            RadGrid2.DataSource = getEmployees(""); 
 
        RadGrid2.DataBind(); 
    } 
 
    private DataView getEmployees(string initialNodes) 
    { 
        DataSet ds = new DataSet(); 
 
        string sqlFinal = string.Empty; 
        if (!initialNodes.Equals(string.Empty)) 
        { 
            sqlFinal = "Where EmployeeID in (" + initialNodes + ")"; 
        } 
 
        using (SqlConnection conn = new SqlConnection()) 
        { 
            conn.ConnectionString = GetConnectionString(); 
            SqlCommand cmd = new SqlCommand("SELECT [EmployeeID], [LastName], [FirstName], [Title], [ReportsTo] FROM [Employees] " + sqlFinal, conn); 
            conn.Open(); 
 
            SqlDataAdapter sqlAdapter = new SqlDataAdapter(cmd); 
 
            sqlAdapter.Fill(ds); 
        } 
 
        DataView dv = new DataView(ds.Tables[0]); 
        return dv; 
    } 
 
    private DataTable getChildNodesByID(string ParentID) 
    { 
        DataSet ds = new DataSet(); 
        string sql = "SELECT [EmployeeID], [LastName], [FirstName], [Title], [ReportsTo] FROM [Employees] Where ReportsTo = " + ParentID; 
 
        using (SqlConnection conn = new SqlConnection()) 
        { 
            conn.ConnectionString = GetConnectionString(); 
            SqlCommand cmd = new SqlCommand(sql, conn); 
            conn.Open(); 
 
            SqlDataAdapter sqlAdapter = new SqlDataAdapter(cmd); 
            sqlAdapter.Fill(ds); 
        } 
 
        DataTable dt = new DataTable(); 
        if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) 
            return ds.Tables[0]; 
        else 
            return null; 
    } 
 
    private DataView getDetails(string ActualNodes) 
    { 
        DataSet ds = new DataSet(); 
 
 
        //string noeuds = ActualNodes.Substring(0, ActualNodes.Length - 1);  
 
        string[] tabNoeuds = ActualNodes.Split(','); 
        string swhen = " CASE "
 
        for (int i = 0; i < tabNoeuds.Length; i++) 
        { 
            swhen += " WHEN EmployeeID = " + tabNoeuds[i] + " THEN " + (i + 1) + " "; 
        } 
        swhen += " END "; 
 
        string sql = "SELECT [EmployeeID], [LastName], [FirstName], [Title], [ReportsTo] FROM [Employees] Where EmployeeID in (" + ActualNodes + ")"; 
        sql += " ORDER BY " + swhen; 
        using (SqlConnection conn = new SqlConnection()) 
        { 
            conn.ConnectionString = GetConnectionString(); 
            SqlCommand cmd = new SqlCommand(sql, conn); 
            conn.Open(); 
 
            SqlDataAdapter sqlAdapter = new SqlDataAdapter(cmd); 
            sqlAdapter.Fill(ds); 
        } 
 
        DataView dv = new DataView(ds.Tables[0]); 
        return dv; 
    } 
 
 
 
    static private string GetConnectionString() 
    { 
        return "server=STATION00374;database=Northwind;Integrated Security=SSPI;"; 
    } 

RadTony
Top achievements
Rank 1
 answered on 03 Feb 2010
1 answer
123 views
I have a grid using simple binding method with a collection of business objects.  Properties are declared in markup using the DataField attribute.  Some properties are in nested objects and are qualified using dot notation.  Properties are largely strings with a few dates and numeric. 

Deployed app on 64-bit server with an Intel Xeon E7220 with 8 GB RAM running on Windows Server 2003 R2.  Using 64-bit .NET 2.0 framework.  When deployed, the binding of 100 rows with 40 columns takes about 700 ms.  This seems high to me.

I assume the object binding is achieved with reflection.  Are there optimizations in place?  What's the best performing method of binding data to a grid?
Nikolay Rusev
Telerik team
 answered on 03 Feb 2010
2 answers
310 views
How do you turn off the cursor from appearing inside the combo box?

The behavior suggests that I can edit the contents of the box, but I am unable to.
Princy
Top achievements
Rank 2
 answered on 03 Feb 2010
1 answer
63 views
Hi,
 In my scheduler I am using resources grouping to show multiple users. How can I get the resource in OnClientTimeSlotClick event?
Peter
Telerik team
 answered on 03 Feb 2010
4 answers
610 views
Hi,

I am trying to populate a radgrid from the data I stored in a backend database, which has a text field. The text field has contents added through a multi-line text box in more than one paragraph. However, when the data is displayed in the grid, the paragraphs are all merged together and the data is displayed as a single paragraph. Is there anything I can do to maintain this while displaying the data in radgrid.

many thanks,

Anu
Dimo
Telerik team
 answered on 03 Feb 2010
1 answer
90 views
I have a timeline view which looks like the attached image

What I would like to do is to have the names (ResourceType) on the top and the times on the left. Can this be done?

HC
Peter
Telerik team
 answered on 03 Feb 2010
3 answers
109 views

I am using a Telerik Grid Control with a custom column that has a image button that has the item command attribute set to allow the row to be selected when the image is clicked.

The tool tip on the image button works great, but does not work great and throws an "unspecified error" when the image button is clicked before tooltip appears.

I have even commented out the code in the command:

 

 

protected void OnAjaxUpdate(object sender, ToolTipUpdateEventArgs args)

 

{

 

this.UpdateToolTip(args.Value, args.UpdatePanel);

 

}

 

private void UpdateToolTip(string ImagePath, UpdatePanel panel)

 

{

 

Control ctrl = Page.LoadControl("/ControlLibrary/FileUI/FilePopUp.ascx");

 

ControlLibrary.FileUI.

FilePopUp popUp = (ControlLibrary.FileUI.FilePopUp)ctrl;

 

popUp.theFileImagePath = ImagePath;

panel.ContentTemplateContainer.Controls.Add(popUp);

}

 

protected void FilesGrid_ItemCommand(object source, GridCommandEventArgs e)

 

{

//if (e.CommandName == "Select")
//{
// foreach (GridItem GI in FilesGrid.SelectedItems
// {
        
// GI.Selected = false;
// }
//}
}

 

protected

 

void FilesGrid_ItemDataBound(object sender, GridItemEventArgs e)
{
if (Session["UserID"] == null)
{
Response.Redirect(
"/default.aspx");
}

if (e.Item is GridDataItem)
{
GridDataItem item = (GridDataItem)e.Item;
//To access a cell Text
if (item["Cost"].Text == "$0.00")
{
item[
"Cost"].Text = "Free";
}

 

 

ImageButton theImg = (ImageButton)item["ThumbnailCol"].FindControl("thumbnailLnk");
Literal theNumBoards = (Literal)item["BoardsCol"].FindControl("NumBoards");

 

theNumBoards.Text = thumbnailsTA.CountNumBoards(

Convert.ToInt64(theImg.ImageUrl)).ToString();

 

RadToolTipManager1.TargetControls.Add(theImg.ClientID,

"/services/GetThumbnail.ashx?ID=1&height=200&width=200&FileID=" + theImg.ImageUrl, true);

 

theImg.ImageUrl =

"/services/GetThumbnail.ashx?ID=1&width=83&height=67&FileID=" + theImg.ImageUrl;

 

 

if (item["Type"].Text == "1")
{
item[
"Type"].Text = "yes";
}
else
{
item[
"Type"].Text = "no";
}
}

 

}

 

 

<telerik:RadToolTipManager OnAjaxUpdate="OnAjaxUpdate" ID="RadToolTipManager1"
runat="server"
Animation="Resize" Skin="Web20" Width="250px" Height="250px"
OffsetY="15" ShowDelay="2000"
AutoCloseDelay="4000" style="display: none;">
</telerik:RadToolTipManager>


Rick

 

Svetlina Anati
Telerik team
 answered on 03 Feb 2010
5 answers
139 views
Hi,
We are finding that although the telerik control is accessible and prompts for accessible attributes, we are finding that the editor itself easily renders invalid HTML. Our content authors are going nuts because the use the tools provided within the editor, yet the final HTML is invalid.  It is not to do with XHTML or the fact that SharePoint strips out double quotes in tags, it is simple things like creating a table, then finding that it produces something like:
<table>
<thead>
</thead>
<tbody>
<tr>
<td>cell 1</td>
<td>cell 2</td>
</tr>
</tbody>
</table>

In this instance, the thead is invalid because it does not contain any rows or columns. Other instances that I have seen:

1) Telerik allows editors to create HTML like <a href=”...”><p>Hello World</p></a> or <span><p>Hello World</p></span>, which is invalid from a W3C HTML validation perspective.

Is this the way it is or is there more configuration or user training that needs to be done?
Stanimir
Telerik team
 answered on 03 Feb 2010
1 answer
164 views
Hi,
i have multiple tabs, with children tabs underneath.

if you are in tab1, you see tab1's children

TAB1 tab2
tab1_1  tab1_2 tab1_3

when clicking to tab2, i click tab2_3

tab1 TAB2
tab2_1 tab2_2 tab2_3

now click back to tab1, then click to tab2, how do i get current tab which is ( tab2_3 ) ?

visually i see that tab2_3 is selected, but the code to determine which tab is selected used below,
always tells me it's tab2_1, not tab2_3


      function onTabSelected(sender, args) { 
        alert(args.get_tab().get_value()); 
 
        return;} 

thanks.



Yana
Telerik team
 answered on 03 Feb 2010
Narrow your results
Selected tags
Tags
+? more
Top users last month
Simon
Top achievements
Rank 2
Iron
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Marco
Top achievements
Rank 4
Iron
Iron
Iron
Grant
Top achievements
Rank 3
Iron
Iron
Iron
Kao Hung
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Simon
Top achievements
Rank 2
Iron
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Marco
Top achievements
Rank 4
Iron
Iron
Iron
Grant
Top achievements
Rank 3
Iron
Iron
Iron
Kao Hung
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?