Assembly and namespace changes
Due to the changes in assembly and namespace's name, you need to change the Register directive to point to Telerik.Web.UI instead of Telerik.Web.Controls. Here is how it should look now:
CopyASPX/ASCX
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" aAsembly="Telerik.Web.UI" %>
The same change affects the code-behind - where you have
CopyC#/VB.NET
using/Imports Telerik.Web.Control
you have to change it into
CopyC#/VB.NET
using/Imports Telerik.Web.UI
ScriptManager control
There must be always an ASP:ScriptManager control placed on the page before the RadAjax controls. Here is a sample code:
CopyASPX
<asp:ScriptManager ID="ScriptManager" runat="server" />
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="Button1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="Panel2" />
<telerik:AjaxUpdatedControl ControlID="Label1" />
<telerik:AjaxUpdatedControl ControlID="Panel1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>RadAjaxLoadingPanel class
The old AjaxLoadingPanel class is renamed to RadAjaxLoadingPanel. You need to change the source as follows:
CopyASPX/ASCX
<telerik:RadAjaxLoadingPanel ID="LoadingPanel1" runat="server">
Loading content ...
</telerik:RadAjaxLoadingPanel>Only one instance of RadAjaxManager control is supported
The previous limitation of single RadAjaxManager per naming container is extended so that now there should be only one instance of the control on the whole page. This means that you cannot have one manager on the main page containing a user control and another inside the user control itself (or Master and content page). Otherwise an error is thrown.
Instead, having a manager instance on the main page/MasterPage, one can already add a RadAjaxManagerProxy in the user control/content page. The Proxy control purpose is similar to the one of ScriptManagerProxy and it could be used to add the necessary settings design-time within the user control/content page, instead of adding them programmatically finding the manager from the main page/master page.
Additionally, if one still needs the manager instance at the code of a WebUserControl for example, she can get the manager by RadAjaxManager.GetCurrent() method call. The method will return null if there is no manager on the page, similar to ASP:ScriptManager implementation.
Client-Side events OnRequestSent and OnResponseReceived missing
Those events will not be implemented in RadAjax for ASP.NET AJAX as they are no longer needed.
Server code blocks in form script tag
Any code blocks (i.e. <% ... %>) on the page like the following:
CopyJavaScript
<script type="text/javascript">
function AjaxReq(args) {
$find("<%=RadAjaxPanel1.ClientID %>").ajaxRequestWithTarget("<%= Button1.UniqueID %>", '');
}
</script>must be wrapped inside the RadCodeBlock control:
CopyJavaScript
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script type="text/javascript">
function AjaxReq(args) {
$find("<%=RadAjaxPanel1.ClientID %>").ajaxRequestWithTarget("<%= Button1.UniqueID %>", '');
}
</script>
</telerik:RadCodeBlock>otherwise a server error is thrown: System.Web.HttpException: The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).
Why is adding RadCodeBlock necessary?
The way code blocks are implemented in ASP.NET may interfere with ajax manager's render interception mechanism. That is why we have created the workaround of enclosing those code blocks in a RadCodeBlock control. Wrapping the blocks within a RadCodeBlock control will isolate the effects to that control only and the partial rendering code will not be affected.
Adding AJAX settings dynamically in Page_Init event is no longer supported
Use Page_Load/PreRender instead. More info about adding the AJAX settings dynamically is available here.
RadAjaxNamespace and AjaxNS are no longer available
In case they've been used in a client script to access RadAjax controls, those should be get via $find("RadAjaxLoadingPanel1") pattern.
UpdatedControlsEventArgs class renamed to AjaxUpdatedControlsEventArgs
The arguments class of ResolveUpdatedControls event has been renamed.
Showing/Hiding controls with AJAX
This scenario works properly with the new RadAjaxManager, while a workaround with always visible control on the page was required for the previous version
ResolveUpdatedControls event is no more supported
The ResolveUpdatedControls event has been removed from the RadAjax for ASP.NET AJAX as it no longer serves its purpose. Initially created for handling scenarios in which the initiator of the ajax request is removed from the page, then was extended to handle AjaxSettings modifications in runtime. The event is now superseded by the AjaxSettingCreating event.