Hi, I created a simple Dock to pass messages back but when the close icon in the dock is clicked IE8 triggers compatibility mode and reloads the page. After that I can refresh the page and everything works. It is only on the first page load the issue presents itself.
Here is my code, first the Master Page:
Master page code behind (simplified):
(bear with me :) Content Page:
...and finally, the content page code behind (again simplified):
Everything works fine, there are no errors (client or server) but when I click close, that is when the compatibility view triggers and the page reloads (displaying the messages again).
Can anyone tell me what the issue is? I'll admit my experience of using Dock is minimal, so hopefully it's something stupid simple :)
Thanks in advance,
Richard
Here is my code, first the Master Page:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.Master.cs" Inherits="Web.App_Templates.Site" %> <!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><Page Title</title> <telerik:RadStyleSheetManager id="TelerikStyleSheetManager" runat="server" /> <asp:ContentPlaceHolder ID="HeadContentPlaceHolder" runat="server"> </asp:ContentPlaceHolder> </head> <body> <form id="MainForm" runat="server"> <telerik:RadScriptManager ID="TelerikScriptManager" runat="server"> <Scripts> <%--Needed for JavaScript IntelliSense in VS2010--%> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" /> </Scripts> </telerik:RadScriptManager> <asp:ContentPlaceHolder ID="ScriptContentPlaceHolder" runat="server"> </asp:ContentPlaceHolder> <telerik:RadAjaxManager ID="TelerikAjaxManager" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="TelerikDock"></telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadSkinManager ID="TelerikSkinManager" Runat="server" Skin="Telerik"> </telerik:RadSkinManager> <telerik:RadWindowManager ID="TelerikWindowManager" runat="server"> <Windows> <telerik:RadWindow ID="TelerikWindow" runat="server"> </telerik:RadWindow> </Windows> </telerik:RadWindowManager> <telerik:RadFormDecorator ID="TelerikFormDecorator" Runat="server" Skin="Telerik" DecoratedControls="All" /> <asp:UpdatePanel ID="MainUpdatePanel" runat="server"> <ContentTemplate> <telerik:RadDockLayout runat="server" ID="TelerikDockLayout" Visible="false"> <telerik:RadDockZone ID="TelerikDockZone" runat="server" Orientation="Horizontal" MinHeight="20px" BorderWidth="0"> <telerik:RadDock ID="TelerikDock" runat="server" Title="Informational Message" Width="100%" EnableAnimation="true" EnableRoundedCorners="true" Resizable="true"> <ContentTemplate> <asp:Literal ID="Feedback" runat="server" Text=" " /> </ContentTemplate> </telerik:RadDock> </telerik:RadDockZone> </telerik:RadDockLayout> <asp:ContentPlaceHolder ID="MainContentPlaceHolder" runat="server"> </asp:ContentPlaceHolder> </ContentTemplate> </asp:UpdatePanel> </form> </body> </html>Master page code behind (simplified):
namespace Web.App_Templates { using System; using System.Web.UI; public partial class Site : MasterPage { public void ShowFeedback(string feedBackText, bool useAlert) { if (feedBackText == string.Empty) { this.Feedback.Text = feedBackText; this.TelerikDock.Title = feedBackText; this.TelerikDockLayout.Visible = false; } else { if (useAlert) { var radAlertScript = string.Format( "function f(){{radalert('{0}', 330, 210);Sys.Application.remove_load(f);}};Sys.Application.add_load(f);", feedBackText); ScriptManager.RegisterStartupScript( Page, Page.GetType(), "Feedback", radAlertScript, true); } else { this.Feedback.Text = feedBackText; this.TelerikDockLayout.Visible = true; } } } public void ShowFeedback(string feedbackTitle, string feedBackText, bool useAlert) { if (feedBackText == string.Empty) { this.Feedback.Text = feedBackText; this.TelerikDock.Title = feedBackText; this.TelerikDockLayout.Visible = false; } else { if (useAlert) { var radAlertScript = string.Format( "function f(){{radalert('{0}', 330, 210, '{1}');Sys.Application.remove_load(f);}};Sys.Application.add_load(f);", feedBackText, feedbackTitle); ScriptManager.RegisterStartupScript( Page, Page.GetType(), "Feedback", radAlertScript, true); } else { this.Feedback.Text = feedBackText; this.TelerikDock.Title = feedbackTitle; this.TelerikDockLayout.Visible = true; } } } } }(bear with me :) Content Page:
<%@ Page Title="Home" Language="C#" MasterPageFile="~/App_Templates/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Web.Default" %> <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> <%@ MasterType VirtualPath="~/App_Templates/Site.Master" %> <asp:Content ID="HeadContent" ContentPlaceHolderID="HeadContentPlaceHolder" runat="server"> </asp:Content> <asp:Content ID="ScriptContent" ContentPlaceHolderID="ScriptContentPlaceHolder" runat="server"> </asp:Content> <asp:Content ID="MainContent" ContentPlaceHolderID="MainContentPlaceHolder" runat="server"> </asp:Content> ...and finally, the content page code behind (again simplified):
namespace Web { using System; public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { this.Master.ShowFeedback("Test Title", "Test normal feedback message.", false); // this.Master.ShowFeedback( "Test Title", "Test pop-up feedback message.",true); } } }Everything works fine, there are no errors (client or server) but when I click close, that is when the compatibility view triggers and the page reloads (displaying the messages again).
Can anyone tell me what the issue is? I'll admit my experience of using Dock is minimal, so hopefully it's something stupid simple :)
Thanks in advance,
Richard