First off: Hello! this my first post here, and I have an annoying issue that arises with google chrome.
here's a screenshot: http://img208.imageshack.us/img208/448/gridproblem.png
I started out using the Web Mail demo from this site for the layout. It worked nicely. Then I decided I would to like to put some common layouts and functionality into a templated usercontrol.
I put a radsplitter, 2 panes, and 2 placeholders in the usercontrol markup. I created a page with the usercontrol on it; within one of its templates I put a radgrid. Everything worked well with IE/FireFox, but the grid got squished in chrome. After searching these forums I found some javascripts which may be outdated, but I implemented them anways and the grid actually resized in chrome onload but gets squished the moment I start resizing the window.
Here's the code
usercontrol asxc
    
usercontrol codebehind:
    
aspx:
    
By the way: if I take the contents of the LeftPaneContentTemplate and just slap that into the aspx markup then the problem disappears, but then I can't use templated usercontrols. I do not use ajax or any updatepanels for this app (yet). As of this moment I will start moving the functionality from this usercontrol into a masterpage instead. Maybe I will have better luck there.
Any ideas ?
Edit: RadControls Version: v.2010.1.415.40
                                here's a screenshot: http://img208.imageshack.us/img208/448/gridproblem.png
I started out using the Web Mail demo from this site for the layout. It worked nicely. Then I decided I would to like to put some common layouts and functionality into a templated usercontrol.
I put a radsplitter, 2 panes, and 2 placeholders in the usercontrol markup. I created a page with the usercontrol on it; within one of its templates I put a radgrid. Everything worked well with IE/FireFox, but the grid got squished in chrome. After searching these forums I found some javascripts which may be outdated, but I implemented them anways and the grid actually resized in chrome onload but gets squished the moment I start resizing the window.
Here's the code
usercontrol asxc
| <%@ Control Language="C#" AutoEventWireup="true" CodeFile="PanelView.ascx.cs" Inherits="PanelView" ClassName="PanelView" %> | 
| <%@ Register Src="HeaderBar.ascx" TagName="HeaderBar" TagPrefix="emesh" %> | 
| <telerik:RadScriptBlock ID="rsbChrome" runat="server" Visible="false"> | 
| <script type="text/javascript"> | 
| function Resize() { | 
| setTimeout(function () { | 
| var scrollArea = null; | 
| for (var i = 0; i < radGrids.length; i++) { | 
| var scrollArea = document.getElementById(radGrids[i] + "_GridData"); | 
| if (scrollArea) { | 
| scrollArea.style.height = document.body.offsetHeight + "px"; | 
| } | 
| if (window[radGrids[i]].ClientSettings.Scrolling.UseStaticHeaders) { | 
| var header = document.getElementById(radGrids[i] + "_GridHeader"); | 
| scrollArea.style.height = document.body.offsetHeight - header.offsetHeight + "px"; | 
| } | 
| } | 
| }, 200); | 
| } | 
| windowwindow.onresize = window.onload = Resize; | 
| </script> | 
| </telerik:RadScriptBlock> | 
| <telerik:RadSplitter ID="RadSplitter1" runat="server" Width="100%" BorderSize="0" BorderStyle="None" PanesBorderSize="0" Height="100%" Orientation="Horizontal"> | 
| <telerik:RadPane ID="LeftPane" runat="server" Scrolling="None"> | 
| <emesh:HeaderBar runat="server" ID="LeftPaneCaption" /> | 
| <asp:PlaceHolder runat="server" ID="LeftPaneContent" /> | 
| </telerik:RadPane> | 
| <telerik:RadSplitBar ID="RadSplitBar1" runat="server"> | 
| </telerik:RadSplitBar> | 
| <telerik:RadPane ID="RightPane" runat="server" Scrolling="None"> | 
| <emesh:HeaderBar runat="server" ID="RightPaneCaption" /> | 
| <asp:PlaceHolder runat="server" ID="RightPaneContent" /> | 
| </telerik:RadPane> | 
| </telerik:RadSplitter> | 
usercontrol codebehind:
| 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.ComponentModel; | 
| using System.Web.Script.Serialization; | 
| public partial class PanelView : System.Web.UI.UserControl | 
| { | 
| #region ContentTemplate Code | 
| private ITemplate leftContentTemplate = null; | 
| private ITemplate rightContentTemplate = null; | 
| public class ContentContainer : WebControl, INamingContainer { } | 
| [TemplateContainer(typeof(ContentContainer))] | 
| [PersistenceMode(PersistenceMode.InnerProperty)] | 
| [TemplateInstance(TemplateInstance.Single)] | 
| [Browsable(true)] | 
| [Category("Behavior")] | 
| [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] | 
| public ITemplate LeftPaneContentTemplate | 
| { | 
| get { return leftContentTemplate; } | 
| set { leftContentTemplate = value; } | 
| } | 
| [TemplateContainer(typeof(ContentContainer))] | 
| [PersistenceMode(PersistenceMode.InnerProperty)] | 
| [TemplateInstance(TemplateInstance.Single)] | 
| [Browsable(true)] | 
| [Category("Behavior")] | 
| [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] | 
| public ITemplate RightPaneContentTemplate | 
| { | 
| get { return rightContentTemplate; } | 
| set { rightContentTemplate = value; } | 
| } | 
| protected override void OnInit(EventArgs e) | 
| { | 
| base.OnInit(e); | 
| if (LeftPaneContentTemplate != null) | 
| { | 
| // Instantiate and initialize the content container class | 
| ContentContainer containerLeft = new ContentContainer(); | 
| LeftPaneContentTemplate.InstantiateIn(containerLeft); | 
| // Add the content template to the placeholder so that we can see the user content | 
| LeftPaneContent.Controls.Add(containerLeft); | 
| } | 
| else | 
| { | 
| LeftPaneVisible = false; | 
| } | 
| if (RightPaneContentTemplate != null) | 
| { | 
| // Instantiate and initialize the content container class | 
| ContentContainer containerRight = new ContentContainer(); | 
| RightPaneContentTemplate.InstantiateIn(containerRight); | 
| // Add the content template to the placeholder so that we can see the user content | 
| RightPaneContent.Controls.Add(containerRight); | 
| } | 
| else | 
| { | 
| RightPaneVisible = false; | 
| } | 
| } | 
| #endregion | 
| #region Properties | 
| public bool LeftPaneVisible | 
| { | 
| get{ return LeftPane.Visible; } | 
| set{ LeftPane.Visible = value;} | 
| } | 
| public bool RightPaneVisible | 
| { | 
| get { return RightPane.Visible; } | 
| set { RightPane.Visible = value; } | 
| } | 
| public string LeftPaneTitle | 
| { | 
| get { return LeftPaneCaption.Text; } | 
| set { LeftPaneCaption.Text = value; } | 
| } | 
| public string RightPaneTitle | 
| { | 
| get { return RightPaneCaption.Text; } | 
| set { RightPaneCaption.Text = value; } | 
| } | 
| public Orientation CurrentOrientation | 
| { | 
| get { return RadSplitter1.Orientation; } | 
| set { RadSplitter1.Orientation = value; } | 
| } | 
| public bool ChromeCompatibilityMode | 
| { | 
| get; | 
| set; | 
| } | 
| #endregion | 
| protected override void OnPreRender(EventArgs e) | 
| { | 
| base.OnPreRender(e); | 
| if (!LeftPaneVisible || !RightPaneVisible) | 
| { | 
| RadSplitBar1.Visible = false; | 
| } | 
| if (ChromeCompatibilityMode) | 
| { | 
| rsbChrome.Visible = true; | 
| List<string> IDs = new List<string>(); | 
| FillWithGridIDs(IDs, Page.Controls); | 
| JavaScriptSerializer js = new JavaScriptSerializer(); | 
| ScriptManager.RegisterArrayDeclaration(Page, "radGrids", js.Serialize(IDs)); | 
| } | 
| } | 
| protected void Page_Load(object sender, EventArgs e) | 
| { | 
| } | 
| private void FillWithGridIDs(List<string> gridIDs, ControlCollection controls) | 
| { | 
| foreach (Control ctrl in controls) | 
| { | 
| if (ctrl is RadGrid) | 
| { | 
| gridIDs.Add(ctrl.ClientID); | 
| } | 
| FillWithGridIDs(gridIDs, ctrl.Controls); | 
| } | 
| } | 
| } | 
aspx:
| <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPages/EMeshMaster.master" AutoEventWireup="true" CodeFile="Roles.aspx.cs" Inherits="Roles" %> | 
| <%@ Register src="UserControls/HeaderBar.ascx" tagname="HeaderBar" tagprefix="uc1" %> | 
| <%@ Register src="UserControls/PanelView.ascx" tagname="PanelView" tagprefix="emesh" %> | 
| <asp:Content ID="Content1" ContentPlaceHolderID="cphHead" Runat="Server"> | 
| </asp:Content> | 
| <asp:Content ID="Content2" ContentPlaceHolderID="cphContent" Runat="Server"> | 
| <asp:ObjectDataSource ID="dsRoles" runat="server" TypeName="DbHelpers" SelectMethod="GetRoles"></asp:ObjectDataSource> | 
| <emesh:PanelView runat="server" ChromeCompatibilityMode="true"> | 
| <LeftPaneContentTemplate> | 
| <telerik:RadToolBar ID="tlbRoles" runat="server" Width="100%" onbuttonclick="tlbRoles_ButtonClick"> | 
| <Items> | 
| <telerik:RadToolBarButton Value="tbWrapper"> | 
| <ItemTemplate> | 
| <table cellpadding="2" cellspacing="0"> | 
| <tr> | 
| <td> | 
| <span>New Role</span> | 
| </td> | 
| <td> | 
| <telerik:RadTextBox runat="server" ID="tbRole"> | 
| </telerik:RadTextBox> | 
| </td> | 
| </tr> | 
| </table> | 
| </ItemTemplate> | 
| </telerik:RadToolBarButton> | 
| <telerik:RadToolBarButton Text="Create" Value="new"></telerik:RadToolBarButton> | 
| <telerik:RadToolBarButton IsSeparator="true"></telerik:RadToolBarButton> | 
| <telerik:RadToolBarButton Text="Delete Role" Value="delete"></telerik:RadToolBarButton> | 
| </Items> | 
| </telerik:RadToolBar> | 
| <telerik:RadGrid ID="existingRoles" runat="server" AllowSorting="True" AutoGenerateColumns="False" GridLines="None" Height="100%" Width="100%" DataSourceID="dsRoles" ShowHeader="True"> | 
| <ClientSettings> | 
| <Selecting AllowRowSelect="True" /> | 
| <Scrolling AllowScroll="True" /> | 
| </ClientSettings> | 
| <MasterTableView> | 
| <RowIndicatorColumn> | 
| <HeaderStyle Width="20px"></HeaderStyle> | 
| </RowIndicatorColumn> | 
| <ExpandCollapseColumn> | 
| <HeaderStyle Width="20px"></HeaderStyle> | 
| </ExpandCollapseColumn> | 
| <Columns> | 
| <telerik:GridBoundColumn HeaderText="Roles" UniqueName="RoleName" DataField="RoleName"> | 
| </telerik:GridBoundColumn> | 
| <telerik:GridBoundColumn HeaderText="Users in Role" UniqueName="UsersInRole" DataField="UsersInRole"> | 
| </telerik:GridBoundColumn> | 
| </Columns> | 
| </MasterTableView> | 
| </telerik:RadGrid> | 
| </LeftPaneContentTemplate> | 
| </emesh:PanelView> | 
| </asp:Content> | 
By the way: if I take the contents of the LeftPaneContentTemplate and just slap that into the aspx markup then the problem disappears, but then I can't use templated usercontrols. I do not use ajax or any updatepanels for this app (yet). As of this moment I will start moving the functionality from this usercontrol into a masterpage instead. Maybe I will have better luck there.
Any ideas ?
Edit: RadControls Version: v.2010.1.415.40

