Known Limitations When Using Telerik AJAX and the AjaxManager
This article lists the known limitations you may encounter when working with the Telerik UI for ASP.NET AjaxManager.
Standard validation—The AjaxManager fully supports server and client-side validation with the standard validators. However, when the page uses a
ValidationSummarycontrol with a
CustomValidator, it performs server-side validation.
Therefore, when the page is AJAX-enabled with the AjaxManager, you need to wrap it in an
ASP:Paneland add the panel to the
UpdatedControlscollection in the AJAX settings, or add the
ValidationSummarycontrol in the AjaxPanel control if such is used for the page ajaxification.
The following example demonstrates how to use the
ValidationSummarycontrol with the
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="btnValidate"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="TextBox1" /> <telerik:AjaxUpdatedControl ControlID="pnlValidationSummary" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <asp:TextBox ID="TextBox1" runat="server" /> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" Display="None" ErrorMessage="Required Field" /> <asp:Button ID="btnValidate" runat="server" /> <asp:Panel ID="pnlValidatorSummary" runat="server"> asp:ValidationSummary ID="ValidationSummary1" runat="server" /> </asp:Panel>
AjaxTimer—The Telerik UI for ASP.NET AJAX does not deliver an AjaxTimer control, because a Timer control is a postback control and does not include AJAX capabilities by itself.
In addition, Microsoft included a Timer control in Microsoft AJAX that offers basic functionalities. For more information, refer to the demo on ajaxifying the Timer.
Ajaxified control postbacks when controls are not updated—The AjaxManager setting from the following example will not ajaxify the button.
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="Button1"> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager>
To work around this limitation, add a control that will be updated. For example, add the same control (the initiator) as the
<UpdatedControls> <telerik:AjaxUpdatedControl ControlID="Button1" /> </UpdatedControls>
Using the AjaxManager and AjaxPanel in the same application—In some complex scenarios, such as when using a master page or WebUserControls, having both the AjaxManager and the AjaxPanel may lead to issues. To handle such problems, use a single AjaxManager and no panels in the master or main page of the project.
OnResponseReceivedclisent-side events are missing—The AjaxManager does not provide these events and you cannot simulate them due to the way ASP.NET AJAX works. To work around this issue, use the
OnResponseEndfor your needs.
Various controls are not supported by the Microsoft AJAX framework—For the full list of controls that are not compatible with the AjaxManager, refer to the article on checking for incompatible controls and updating third-party controls.
AJAX requests are not working when
false—The same issue may occur when inheriting from an AjaxPage to support Medium Trust in DNN or SharePoint. You need to consider these limitations when you configure the AjaxManager or the AjaxPanel for your particular project schema.
When using Medium Trust, client-side validation does not execute and validators are added dynamically during an Ajax call—When the Medium Trust level is used, you cannot use reflection to set private properties. However, when you use validators in a template that is placed in an AjaxPanel, you need to set the
_parentprivate property of the validators to the updated panel with reflection. This approach is required so that all validators are rendered as expected. Therefore, in such scenarios, to make validators work as expected, use
asp:UpdatePanelinstead of the AjaxPanel or AjaxManager.
Parent-child control configuration—Child elements cannot be the
AjaxSettinginitiator or update their parent container element. To add and update a container or a parent control, allow the container or the control, or an external component to be the initiator. It is similar to placing a
asp:UpdatePanelon the page: it will affect only the content inside this panel. The AjaxManager is similar; only it achieves what is going on under the hood.