Only Telerik controls cause Ajax Update and show LoadingPanel
This is a strange one indeed. I have a page with multiple custom user controls defined as widgets and placed onto the page. The usercontrols use RadAjaxPanels to display and update content within themselves.
I've noticed that the widget works as expected as long as the postback is initiated from a Telerik control, but it does a full page refresh if the postback comes from a standard ASP.NET Control. Here is a quick example:
ASCX:
<sf:RadAjaxPanel runat="server" ID="rapTest" LoadingPanelID="ralpPoll"> <asp:Button runat="server" ID="btnTestSleep" Text="Test ME!" OnClick="btnTest_Click" /> <sf:RadButton runat="server" ID="btnTelerik" Text="Rad Button Test" OnClick="btnTest_Click"></sf:RadButton></sf:RadAjaxPanel>protected void btnTest_Click(object sender, EventArgs e) System.Threading.Thread.Sleep(5000); Hello Amir,
Could you check whether you have RadAjaxManager in your template? Have you tried used the ASP.NET UpdatePanel to handle the post back?
Greetings,
Ivan Dimitrov
the Telerik team
No RadAjaxManager in this template. I did try to ajaxify the page with an radAjaxManager with the same results however. Using an Asp UpdatePanel seems to work properly. However, I lose my rad ajax loading panel.
Hi Amir,
We had some issues with the AJAX in older version - SP1 and SP2. I am testing with SP3 and the AJAX is triggered properly at my end.
Best wishes,
Ivan Dimitrov
the Telerik team
Hi,
Issues with AJAX in SP3 and 4.2 are still there... I cannot use ajaxified controls properly yet...
We need more attention on this, it's been a long time that's not working.
John
Hi John,
I managed to replicate the issue with Sitefinity 4.2 and logged a bug that we will investigate further. Here is the PITS that you can follow
http://www.telerik.com/support/pits.aspx#/public/sitefinity/7467
Regards,
Ivan Dimitrov
the Telerik team
Can anybody help me with the following issue? Or, confirm that it IS in fact an issue?... going kinda crazy here trying to figure this out. The issue in this thread smells like it has something to do with what I am seeing, but what I am seeing is just too bizaar for me to completely understand or confirm what the problem is.
I have a set of User Controls built from an external assembly that I am including into a Sitefinity 4.2 project. Both the User Control assembly and SF 4.2 are using the same version of Telerik controls (latest version).
My external assembly (web project) with my controls works PERFECTLY. I HEAVILY use the Telerik control suite, so I have Telerik controls all over the place. Everything works as expected.
I go through the procedure of getting that assembly into the SF 4.2 project (copying assembly DLL, moving ascx file over... adding control to toolbox.) I have the control in the toolbox. I CAN put the controls on pages just fine. That is about where the fun ends... Pretty much everything goes haywire from there. The public pages load correctly with my control on the page, but almost any Telerik flavored control in my user control has issues. For example, RadComboList... you can't click the dropdown to make it drop down. RadEditor... you can't actually put your cursor into the content area.
Part of my issue (with some other weirdness) was due to the fact that I did not have the "enableViewState" marked in the page properties in SF. I DO have this enabled now and corrected some of the data disappearing from the dropdowns and so forth. But, I STILL have the issue with RadControls going out to lunch.
More weirdness... I have one of these controls placed in a STAND ALONE test page without ANYthing else on the page. I also have it placed within the normal website on a page where it will hopefully one day reside. On the STANDALONE page... It seems to work (most of the time) in Firefox (3.6.18), but it NEVER works in IE9. By "work" all I am referring to is to be able to click the dropdown portion of the RadComboBox and have it dropdown. Nothing happens in IE9 (or in compatibility mode)...well, nothing except it gets into a real tizzy and throws a JS error anytime anything else is done (including trying to reload the page or close the page):
Line: 419Error: Unable to get value of the property 'length': object is null or undefined%@ Control Language="vb" AutoEventWireup="false" CodeBehind="ucTestTel1.ascx.vb" Inherits="SitefinityUI.ucTestTel1" %> <telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxy1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="btnTest1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="pnlLit" LoadingPanelID="RadAjaxLoadingPanel1" /> <telerik:AjaxUpdatedControl ControlID="pnlLit2" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="btnTest2"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="pnlLit" LoadingPanelID="RadAjaxLoadingPanel1" /> <telerik:AjaxUpdatedControl ControlID="pnlLit2" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManagerProxy> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" Runat="server" Skin="Default" InitialDelayTime="1000" MinDisplayTime="1000"> </telerik:RadAjaxLoadingPanel> <div> <asp:Panel ID="pnlLit" runat="server" Height="50"> <h2>RadTextBox1</h2> <telerik:RadTextBox ID="fldtxtBox1" runat="server" /> </asp:Panel> <br /> <asp:Panel ID="pnlLit2" runat="server" Height="50"> <h2>RadComboBox1</h2> <telerik:RadComboBox ID="fldrcbDropdown1" runat="server" /> </asp:Panel> <br /> <br /> <asp:Button ID="btnTest1" runat="server" Text="Test +1" /> <br /> <br /> <asp:Button ID="btnTest2" runat="server" Text="Test +2" /> </div>Public Class ucTestTel1 Inherits BasePages.BaseUserControlSiteFinity Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then Me.LoadDefaults() End If End Sub Private Sub LoadDefaults() Dim lstItems As New List(Of String) From "Begin Here", "Item 0", "Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6", "Item 7", "Item 8", "Item 9" Me.fldrcbDropdown1.DataSource = lstItems Me.fldrcbDropdown1.DataBind() Me.fldrcbDropdown1.SelectedIndex = 0 End Sub Private Sub btnTest1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnTest1.Click Threading.Thread.Sleep(1500) Me.pnlLit.BackColor = Drawing.Color.Aqua If ((Me.fldrcbDropdown1.SelectedIndex + 1) <= (Me.fldrcbDropdown1.Items.Count - 1)) Then Me.fldrcbDropdown1.SelectedIndex += 1 Else Me.fldrcbDropdown1.SelectedIndex = 0 End If Me.fldtxtBox1.Text = Me.fldrcbDropdown1.SelectedValue End Sub Private Sub btnTest2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnTest2.Click Threading.Thread.Sleep(1500) Me.pnlLit.BackColor = Drawing.Color.Beige If ((Me.fldrcbDropdown1.SelectedIndex + 2) <= (Me.fldrcbDropdown1.Items.Count - 1)) Then Me.fldrcbDropdown1.SelectedIndex += 2 Else Me.fldrcbDropdown1.SelectedIndex = 0 End If Me.fldtxtBox1.Text = Me.fldrcbDropdown1.SelectedValue End Sub Public Overrides Sub BindScreen(oDataObject As Object) End Sub Public Overrides Sub UnbindScreen(Optional IsCancelCommand As Boolean = False) End SubEnd ClassProtected Overrides Sub OnInit(ByVal e As System.EventArgs) 'On the INIT of the UC (which happens BEFORE the PAGE_INIT), add a hook/handler to that event so we can create some stuff at the right time. AddHandler Me.Page.Init, AddressOf Me.ParentPage_Init MyBase.OnInit(e)End SubPrivate Sub ParentPage_Init(ByVal sender As Object, ByVal e As System.EventArgs) 'Ok... The PAGE INIT (for the PAGE...not UC) was fired and we are doing some work here) Me.CreateScriptManager()End SubPrivate Sub CreateScriptManager() 'Find out of we have a SCRIPT MANAGER yet... if not, add it. Dim sm As ScriptManager = ScriptManager.GetCurrent(Me.Page) If sm Is Nothing Then sm = New ScriptManager sm.EnablePartialRendering = True sm.Scripts.Add(New ScriptReference("Telerik.Web.UI.Common.Core.js", "Telerik.Web.UI")) sm.Scripts.Add(New ScriptReference("Telerik.Web.UI.Common.jQuery.js", "Telerik.Web.UI")) sm.Scripts.Add(New ScriptReference("Telerik.Web.UI.Common.jQueryInclude.js", "Telerik.Web.UI")) sm.Scripts.Add(New ScriptReference("~/js/Alerts.js")) sm.Scripts.Add(New ScriptReference("~/js/onRequestStart.js")) sm.Scripts.Add(New ScriptReference("~/js/myFunctions.js")) 'Add the SCRIPT MANAGER to the Page's FORM controls coll. Me.Page.Form.Controls.Add(sm) Else 'Script Manager exists... , but does it have our scripts loaded? Dim oScript1 = sm.Scripts.Where(Function(db) db.Name.ToLower = "Telerik.Web.UI.Common.Core.js".ToLower).FirstOrDefault If oScript1 Is Nothing Then sm.Scripts.Add(New ScriptReference("Telerik.Web.UI.Common.Core.js", "Telerik.Web.UI")) End If Dim oScript2 = sm.Scripts.Where(Function(db) db.Name.ToLower = "Telerik.Web.UI.Common.jQuery.js".ToLower).FirstOrDefault If oScript2 Is Nothing Then sm.Scripts.Add(New ScriptReference("Telerik.Web.UI.Common.jQuery.js", "Telerik.Web.UI")) End If Dim oScript3 = sm.Scripts.Where(Function(db) db.Name.ToLower = "Telerik.Web.UI.Common.jQueryInclude.js".ToLower).FirstOrDefault If oScript3 Is Nothing Then sm.Scripts.Add(New ScriptReference("Telerik.Web.UI.Common.jQueryInclude.js", "Telerik.Web.UI")) End If Dim oScript4 = sm.Scripts.Where(Function(db) db.Path.ToLower = "~/js/Alerts.js".ToLower).FirstOrDefault If oScript4 Is Nothing Then sm.Scripts.Add(New ScriptReference("~/js/Alerts.js")) End If Dim oScript5 = sm.Scripts.Where(Function(db) db.Path.ToLower = "~/js/onRequestStart.js".ToLower).FirstOrDefault If oScript5 Is Nothing Then sm.Scripts.Add(New ScriptReference("~/js/onRequestStart.js")) End If Dim oScript6 = sm.Scripts.Where(Function(db) db.Path.ToLower = "~/js/myFunctions.js".ToLower).FirstOrDefault If oScript6 Is Nothing Then sm.Scripts.Add(New ScriptReference("~/js/myFunctions.js")) End If End If 'We can't test for RADAJAXMANAGER (with the .GetCurrent method anyway) at this point in the page lifecycle, so we need to do it manually. Dim ram As RadAjaxManager = DQSFunctions.Search.FindControlRecursiveByID(Me.Page.Form.Controls, "RadAjaxManager1") If ram Is Nothing Then 'Go create a RADAJAXMANAGER (again, assuming it isn't there) and add it to the Page as well. Me.Page.Form.Controls.Add(Me.CreateRadAjaxManager) End IfEnd SubPrivate Function CreateRadAjaxManager() As RadAjaxManager Dim ram As RadAjaxManager = New RadAjaxManager ram.ID = "RadAjaxManager1" ram.EnableHistory = True ram.UpdatePanelsRenderMode = UpdatePanelRenderMode.Inline Return ramEnd FunctionHello Shawn Krivjansky,
Thank for explaining the issue in detail.
I have tried looking for a solution, however I have not been able at the moment using embedded UCs. If I use SimpleView derived control I have not problems. I will get back to you when I have more information and sample on how to overcome this problem.
Kind regards,
Radoslav Georgiev
the Telerik team
Thank you for being the most amazing .NET community! Your unfailing support is what helps us charge forward! We'd appreciate your vote for Telerik in this year's DevProConnections Awards. We are competing in mind-blowing 20 categories and every vote counts! VOTE for Telerik NOW >>