Error with RadAjaxManager and RadFormDecorator

10 posts, 0 answers
  1. Christopher Blickley
    Christopher Blickley avatar
    202 posts
    Member since:
    Jan 2004

    Posted 01 Mar 2013 Link to this post

    All:

    I've been going back and forth with support a bit on this issue (we are having trouble understanding each other I think), but thought I would post this here as well since I am scheduled to go into production with an applciation that is having this issue.  I was hoping that someone may have a workaround since I am reluctant to roll out my app with this problem.  We incorporated some of the new controls in Q1 2013 in our project and don't want to have to roll those back. 

    I have reproduced this easily in another application as an example.

    I noticed that with Q1 2013, when an unhandled server exception occurs during an Ajax callback, a script error occurs in a Microsoft Ajax script function which then causes Javascript processing to stop.  The result is that my own error handling on the client doesn't function, neither does the ending client event on the RadAjaxManager, so everything just comes to a halt.

    This only occurs when RadFormDecorator is on the page (regardless of what controls are decorated).  If I remove the RadFormDecorotar, everything is fine.

    Here is the code for the .asp page nd the code for the code-behind, where all I am doing is throwing an exception to simulate an unhandled exception on the server.  In IE9, the loading panel will never go away and you can see the script error in the debugger.  In other browsers, like Chrome, you can see the error, but the loading panel does disappear, so it is not as obvious.

    I'm also including where the script error occurs: on the line "oldIds = upData.oldUpdatePanelIDs"....the error is that oldUpdatePanelIDs is null.  The snippet for that code is below too from the debugger.

    Lastly, here is a video that clearly demonstrates the issue, as well as shows that Q3 2012 did not do this, so it appears to be a breaking change.
    http://www.youtube.com/watch?v=1FuNEoNWBec

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication2.WebForm1" %>
     
    <!DOCTYPE html>
     
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:ScriptManager runat="server" ID="ScriptManager"></asp:ScriptManager>
     
            <telerik:RadAjaxManager runat="server" ID="RadAjaxManager">
                <AjaxSettings>
                    <telerik:AjaxSetting AjaxControlID="btnTest">
                        <UpdatedControls>
                            <telerik:AjaxUpdatedControl ControlID="pnlAll" LoadingPanelID="LoadingPanel" />
                        </UpdatedControls>
                    </telerik:AjaxSetting>
                </AjaxSettings>
            </telerik:RadAjaxManager>
     
            <telerik:RadAjaxLoadingPanel runat="server" ID="LoadingPanel" BackColor="Black" Transparency="50"></telerik:RadAjaxLoadingPanel>
      
            <asp:Panel runat="server" ID="pnlAll">
                This is the test page.
                <br /><br /><br /><br />
                <asp:Button runat="server" ID="btnTest" Text="Test Me" />
            </asp:Panel>
     
            <telerik:RadFormDecorator Enabled="true" runat="server" ID="RadFormDecorator1" Skin="Default" DecoratedControls="Buttons"   />
             
        </form>
    </body>
    </html>


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
     
    namespace WebApplication2
    {
        public partial class WebForm1 : System.Web.UI.Page
        {
            public WebForm1()
            {
                this.Init += WebForm1_Init;
            }
     
            void WebForm1_Init(object sender, EventArgs e)
            {
                btnTest.Click += btnTest_Click;
            }
     
            void btnTest_Click(object sender, EventArgs e)
            {
                throw new Exception("THis is a test") ;
            }
        }
    }

  2. Pavlina
    Admin
    Pavlina avatar
    6084 posts

    Posted 06 Mar 2013 Link to this post

    Hello Christopher,

    Your support ticket is already replied and here is the answer:

    This issue seems to manifest on some machines only when the RadFormDecorator is used and the RadCompression is enabled on your web application. For the time being you can just remove the RadCompression from your web.config file:
    • Configuration-> system.web-> httpModules-> RadCompression.
    • Configuration-> system.webserver-> modules-> RadCompression.

    Kind regards,

    Pavlina
    the Telerik team
    If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Rob
    Rob avatar
    2 posts
    Member since:
    Oct 2012

    Posted 14 Mar 2013 Link to this post

    I'm having this exact same issue.  Has any root cause been identified yet which can put a potential fix on the roadmap?  Disabling the compression module is not a very palatable solution.
  5. Henrik
    Henrik avatar
    23 posts
    Member since:
    Feb 2012

    Posted 18 Mar 2013 Link to this post

    This is a breaking change for me too.
    We REALLY need a fix for this.
  6. Pavlina
    Admin
    Pavlina avatar
    6084 posts

    Posted 19 Mar 2013 Link to this post

    Hello,

    This bug is already fixed and to take care of it you can download latest internal build from your account.

    Kind regards,
    Pavlina
    the Telerik team
    If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
  7. Henrik
    Henrik avatar
    23 posts
    Member since:
    Feb 2012

    Posted 21 Mar 2013 Link to this post

    Thank you.
    Are you able to provide some background to what causes this error?
    I'd like to find some kind of workaround, since i need to deliver a new function to my customer soon, and this new function causes the error.

    I'm reluctant to deliver the product with the hotfix since it hasn't been through QA.

    I'm reluctant to use the "disable compression" too, since my customers will experience a performance loss on this new delivery.

    !!!!! NEVER MIND !!!!!
    Never mind the above. I figured out a completely different approach, using the RadListView and client-side binding, rather than postbacks.

    ..works much faster that way too....
  8. Andrew
    Andrew avatar
    3 posts
    Member since:
    Sep 2012

    Posted 28 Jul 2013 Link to this post

    Hi,

    Is there a workaround other than turning off RadCompression or using the internal build ?

    regards,

    Andrew
  9. Henrik
    Henrik avatar
    23 posts
    Member since:
    Feb 2012

    Posted 29 Jul 2013 Link to this post

    Now I'm not Telerik so I don't have any technical inside-knowledge, but if you describe your scenario, ve might be able to figure out another way to solve the issue (another control og approach).

  10. Andrew
    Andrew avatar
    3 posts
    Member since:
    Sep 2012

    Posted 29 Jul 2013 Link to this post

    Hi Henrik,

    Thanks for your reply, very generous of you to volunteer ;)

    This bug has affected some web apps we have already deployed.
    Like you I am reluctant to turn off compression or to use a Telerik internal build in production.
    I am also reluctant to remove RadFormDecorator as this will have a noticeable visual impact for users.

    Unlike you it is not the fortuitous case that there is a better way of implementing the pages that also has the useful side-effect of avoiding the bug, as we are happy with the current design and the speed of the pages, and cannot afford to rewrite and re-test all of them anyway.

    The main impact right now is that any server side exceptions during AJAX callback processing will simply hang with the loading panel showing.
    Under current design the master page takes care of handling exceptions via AsyncPostBackError and displaying them to the user in an Alert window. With the bug this no longer works.

    I was just hoping for some workaround that I could actually put into production other than waiting for the next official release.

    cheers

    Andrew
  11. Henrik
    Henrik avatar
    23 posts
    Member since:
    Feb 2012

    Posted 29 Jul 2013 Link to this post

Back to Top
UI for ASP.NET Ajax is Ready for VS 2017