This is a migrated thread and some comments may be shown as answers.

Error with RadAjaxManager and RadFormDecorator

9 Answers 158 Views
Ajax
This is a migrated thread and some comments may be shown as answers.
Christopher
Top achievements
Rank 1
Christopher asked on 01 Mar 2013, 03:35 PM
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") ;
        }
    }
}

9 Answers, 1 is accepted

Sort by
0
Pavlina
Telerik team
answered on 06 Mar 2013, 09:20 AM
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.
0
Rob
Top achievements
Rank 1
answered on 14 Mar 2013, 02:35 PM
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.
0
Henrik
Top achievements
Rank 2
answered on 18 Mar 2013, 09:37 AM
This is a breaking change for me too.
We REALLY need a fix for this.
0
Pavlina
Telerik team
answered on 19 Mar 2013, 01:41 PM
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.
0
Henrik
Top achievements
Rank 2
answered on 21 Mar 2013, 11:19 AM
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....
0
Andrew
Top achievements
Rank 1
answered on 29 Jul 2013, 03:25 AM
Hi,

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

regards,

Andrew
0
Henrik
Top achievements
Rank 2
answered on 29 Jul 2013, 07:52 AM
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).

0
Andrew
Top achievements
Rank 1
answered on 29 Jul 2013, 08:19 AM
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
0
Henrik
Top achievements
Rank 2
answered on 29 Jul 2013, 08:25 AM
Tags
Ajax
Asked by
Christopher
Top achievements
Rank 1
Answers by
Pavlina
Telerik team
Rob
Top achievements
Rank 1
Henrik
Top achievements
Rank 2
Andrew
Top achievements
Rank 1
Share this question
or