After the Q2 2008 SP2 release of RadControls for ASP.NET AJAX we received several messages from customers who upgraded to the service pack and got a clientside javascript error from the RadFormDecorator saying
"_a.deleteRule is null or not an object".
Upon further research we were able to determine that the problem comes from using RadFormDecorator and RadStyleSheetManager on the same page.
The error is caused by new code in the RadFormDecorator that has to do with eliminating the short flicker when a page loads. Up until SP2 RadFormDecorator the user would shortly see the default browser elements before those were replaced with their decorated counterparts. Eliminating this flicker was the most common request that came back as feedback from customers. Unfortunately, it is an extremely tricky thing to do - as the way the RadFormDecorator functions is to decorate elements on the clientside, rather than do server-side processing.
We were able to workaround the flickering problem by using a css style to hide input elements, and then show them back after they are decorated. However, the hack relies on the RadFormDecorator being able to find its own CSS file on the client and modify it. Unfortunately, when using RadStyleSheetManager all CSS files are combined into one single file, thus causing the RadFormDecorator to fail. This is a logical error that was not detected during our tests - and unfortunately there is no workaround for the time being.
We are working on ensuring that the RadFormDecorator and RadStyleSheetManager will work properly and the problem will be corrected in a matter of days. For the time being the only way around it is to not use RadStyleSheetManager together with RadFormDecorator.
============================================
Update:
We found that the RadFormDecorator live examples will not work properly in Firefox if loaded through the web project of the RadControls installation (see the screenshot). If loaded directly via the provided Start menu shortcut (see the screenshot) one will not experience this problem. The RadFormDecorator will function properly in all developer projects and applications as well (except for if RadStyleSheetManager is used - see above)
=============================================
Update #2:
Two new issues were reported with the RadFormDecorator new page initialization and page layout mechanism in certain scenarios.
We have prepared solutions and workarounds for all reported issues. Attached is a simple page that provides the workarounds (two of those are pure CSS and one is javascript that needs to be pasted on the page without the need to modify anything else).
=============================================
Update #3:
An issue was reported with some of RadGrid inputs (such as the "previous page", and "next page" buttons) not visible when the RadFormDecorator is used. The problem comes from the fact that these inputs have no value/text and their look is styled completely using CSS. The "solutions" page was updated to provide a workaround for this scenario as well. As of the next official update, the RadFormDecorator will be modified to not style inputs that have a className/CssClass set. We assume that the presence of a classname would mean that the developer provides separate styling for the input that should not be changed by the RadFormDecorator. Instead, only "unstyled" inputs will be decorated.
=============================================
Update #4:
All problems discussed in this forum thread are fixed in the "Futures" release which is available from the Downloads section in your Client.net account.
There is a new problem however with INPUT elements that become invisible on the page when RadFormDecorator is used in MasterPage / ContentPage scenario. This problem is a side effect from a new approach that we tried to eliminate the initial flickering of the skinned controls.
The good news is that we will fix this problem as well for the Q2 release in 2 weeks. The new solution will be based on the original implementation of the "anti-flickering" fix which had problems when used with RadStyleSheetManager. Now we will make some changes in both products and from Q2 everything will work as expected.
For the time being there is a workaround that you can use in case you stumble upon this problem. What you need to do is to add the following code on the page:
"_a.deleteRule is null or not an object".
Upon further research we were able to determine that the problem comes from using RadFormDecorator and RadStyleSheetManager on the same page.
The error is caused by new code in the RadFormDecorator that has to do with eliminating the short flicker when a page loads. Up until SP2 RadFormDecorator the user would shortly see the default browser elements before those were replaced with their decorated counterparts. Eliminating this flicker was the most common request that came back as feedback from customers. Unfortunately, it is an extremely tricky thing to do - as the way the RadFormDecorator functions is to decorate elements on the clientside, rather than do server-side processing.
We were able to workaround the flickering problem by using a css style to hide input elements, and then show them back after they are decorated. However, the hack relies on the RadFormDecorator being able to find its own CSS file on the client and modify it. Unfortunately, when using RadStyleSheetManager all CSS files are combined into one single file, thus causing the RadFormDecorator to fail. This is a logical error that was not detected during our tests - and unfortunately there is no workaround for the time being.
We are working on ensuring that the RadFormDecorator and RadStyleSheetManager will work properly and the problem will be corrected in a matter of days. For the time being the only way around it is to not use RadStyleSheetManager together with RadFormDecorator.
============================================
Update:
We found that the RadFormDecorator live examples will not work properly in Firefox if loaded through the web project of the RadControls installation (see the screenshot). If loaded directly via the provided Start menu shortcut (see the screenshot) one will not experience this problem. The RadFormDecorator will function properly in all developer projects and applications as well (except for if RadStyleSheetManager is used - see above)
=============================================
Update #2:
Two new issues were reported with the RadFormDecorator new page initialization and page layout mechanism in certain scenarios.
We have prepared solutions and workarounds for all reported issues. Attached is a simple page that provides the workarounds (two of those are pure CSS and one is javascript that needs to be pasted on the page without the need to modify anything else).
=============================================
Update #3:
An issue was reported with some of RadGrid inputs (such as the "previous page", and "next page" buttons) not visible when the RadFormDecorator is used. The problem comes from the fact that these inputs have no value/text and their look is styled completely using CSS. The "solutions" page was updated to provide a workaround for this scenario as well. As of the next official update, the RadFormDecorator will be modified to not style inputs that have a className/CssClass set. We assume that the presence of a classname would mean that the developer provides separate styling for the input that should not be changed by the RadFormDecorator. Instead, only "unstyled" inputs will be decorated.
=============================================
Update #4:
All problems discussed in this forum thread are fixed in the "Futures" release which is available from the Downloads section in your Client.net account.
There is a new problem however with INPUT elements that become invisible on the page when RadFormDecorator is used in MasterPage / ContentPage scenario. This problem is a side effect from a new approach that we tried to eliminate the initial flickering of the skinned controls.
The good news is that we will fix this problem as well for the Q2 release in 2 weeks. The new solution will be based on the original implementation of the "anti-flickering" fix which had problems when used with RadStyleSheetManager. Now we will make some changes in both products and from Q2 everything will work as expected.
For the time being there is a workaround that you can use in case you stumble upon this problem. What you need to do is to add the following code on the page:
<%@ Page Language="csharp" AutoEventWireup="true" MasterPageFile="./MasterPage.master" %> |
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> |
<asp:ScriptManager ID="ScriptManager1" runat="server"> |
</asp:ScriptManager> |
<script runat=server language=csharp> |
public void OnPreRender(object sender, System.EventArgs args) |
{ |
int last = RadFormDecorator1.Controls.Count -1; |
RadFormDecorator1.Controls[last].ID = RadFormDecorator1.ID + "_hiddenInputsStyle"; |
} |
</script> |
<telerik:RadFormDecorator OnPreRender="OnPreRender" ID="RadFormDecorator1" runat="server" /> |
<telerik:RadComboBox ID="cmbLeerling" runat="server" AutoPostBack="True" CausesValidation="False" |
Skin="Outlook" Width="200px" AllowCustomText="True" MarkFirstMatch="True"> |
<CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation> |
</telerik:RadComboBox> |
</asp:Content> |