Hi!
I am transfering some standalone .aspx pages (with telerik controls such as radButtons, radHtmlCharts, radCodeBlocks etc.) to pages that use a master page file for common layouting.
I am facing an issue with AjaxManager and AjaxLoadingPanel, activated when the user clicks on a RadHtmlChart series to drill down. This was working just fine when the page was implemented as standalone however it stopped working when tried to bind the page to a master page file.
What i exactly try to achieve is to have a chart loaded in a AjaxLoadingPanel on its series click event. I have also mupltiple RadHtmlCharts in my page so the only way to load each chart separately (on its series click event) is to have some hidden buttons in my page,passing some ajaxRequestWithTarget values to vode behind.
Since i am using a master page, i use an RadAjaxManagerProxy in my .aspx page for managing telerik control ajax update actions.
So here is my master page code:
<%@ Master Language="VB" AutoEventWireup="true" CodeFile="DashboardMaster.master.vb" Inherits="DashboardMaster" %><%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> ... <asp:ContentPlaceHolder id="head" runat="server"> </asp:ContentPlaceHolder></head><body> ... <form id="form1" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server" EnablePartialRendering="true"> <Scripts> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" /> </Scripts> </telerik:RadScriptManager> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> </telerik:RadAjaxManager> <div> <asp:ContentPlaceHolder id="MainContent" runat="server"> </asp:ContentPlaceHolder> </div> </form> ...And here is the .aspx page relevant code:
<%@ Page Title="" Language="VB" MasterPageFile="~/Dashboard2/DashboardMaster.master" AutoEventWireup="true" CodeFile="CorporateView3.aspx.vb" Inherits="CorporateView3" %>...<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server"> <telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxy1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadButtonAverageImageResolutionOfCountries"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadHtmlChartAverageImageResolutionOfCountries" LoadingPanelID="AjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> ... </telerik:RadAjaxManagerProxy> ... <telerik:RadCodeBlock ID="RadCodeBlock65" runat="server"> <script type="text/javascript"> function AverageImageResolutionOfCountriesOnClientSeriesClicked(sender, args) { var btn1 = $find("<%=RadButtonAverageImageResolutionOfCountries.ClientID%>"); if (args.get_seriesName() !== "Sites") { btn1.set_commandName(args.get_category()); $find('<%= RadAjaxManager.GetCurrent(Page).ClientID %>').ajaxRequestWithTarget("RadButtonAverageImageResolutionOfCountries", ""); } } </script> </telerik:RadCodeBlock> ... <telerik:RadAjaxLoadingPanel ID="AjaxLoadingPanel1" runat="server" Skin="BlackMetroTouch"> </telerik:RadAjaxLoadingPanel> ... <div style="display: none;"> <telerik:RadButton ID="RadButtonAverageImageResolutionOfCountries" runat="server" Text="RadButtonAverageImageResolutionOfCountries" OnClick="RadButtonAverageImageResolutionOfCountries_Click" /> </div> ... ... <div class="col4"> <telerik:RadHtmlChart runat="server" ID="RadHtmlChartAverageImageResolutionOfCountries" Skin="Black" Height="280" OnClientSeriesClicked="AverageImageResolutionOfCountriesOnClientSeriesClicked"> <Appearance> <FillStyle BackgroundColor="#262626"></FillStyle> </Appearance> <ChartTitle Text="Average Image Resolution"> <Appearance> <TextStyle Color="#7f7f7f" FontSize="18" FontFamily="Arial,sans-serif" Margin="5 0 40 0" Padding="0" Bold="true" Italic="false" /> </Appearance> </ChartTitle> <Legend> <Appearance Visible="false" /> </Legend> <PlotArea> <Appearance></Appearance> <Series> <telerik:ColumnSeries Name="Countries" DataFieldY="AverageImageResolution"> <TooltipsAppearance DataFormatString="{0:0,0.00}" /> <LabelsAppearance Visible="true" DataFormatString="{0:0,0.00}" Color="#b5acac" /> <Appearance FillStyle-BackgroundColor="#336ca6" Overlay-Gradient="None"></Appearance> </telerik:ColumnSeries> </Series> <XAxis DataLabelsField="Country" Color="#8f8686"> <MajorGridLines Color="#424040" Width="1" Visible="true"></MajorGridLines> <MinorGridLines Color="#343333" Width="1" Visible="true"></MinorGridLines> </XAxis> <YAxis Color="#8f8686"> <LabelsAppearance DataFormatString="{0}" /> <MajorGridLines Color="#424040" Width="1" Visible="true"></MajorGridLines> <MinorGridLines Color="#343333" Width="1" Visible="true"></MinorGridLines> </YAxis> </PlotArea> </telerik:RadHtmlChart> </div> </asp:Content>As you can see there is an RadHtmlChart: RadHtmlChartAverageImageResolutionOfCountries in the page, triggering AverageImageResolutionOfCountriesOnClientSeriesClicked when a series item is clicked.
This jscript function is triggering: ajaxRequestWithTarget(RadButtonAverageImageResolutionOfCountries...) which updates the radHtmlChart using AjaxLoadingPanel1.
The code called on button "click" is:
Protected Sub RadButtonAverageImageResolutionOfCountries_Click(ByVal sender As Object, ByVal e As EventArgs) 'Execute some server logic System.Threading.Thread.Sleep(2000) Dim seriesNameRes As String = RadHtmlChartAverageImageResolutionOfCountries.PlotArea.Series(0).Name If seriesNameRes = "Countries" Then Dim CountryRes As String = (RadButtonAverageImageResolutionOfCountries.CommandName).ToString RadHtmlChartAverageImageResolutionOfCountries.PlotArea.XAxis.DataLabelsField = "Site" RadHtmlChartAverageImageResolutionOfCountries.PlotArea.Series(0).DataFieldY = "AverageImageResolution" RadHtmlChartAverageImageResolutionOfCountries.PlotArea.Series(0).Name="Sites" RadHtmlChartAverageImageResolutionOfCountries.DataSource = GetAverageImageResolutionOfEntitiesSelectedParentTimeSpan("Sites", CountryRes, FromDateValue, ToDateValue) RadHtmlChartAverageImageResolutionOfCountries.DataBind() End If End SubThe logic above used to work just fine, however is stopped working when start using a master page file.
Now when the user clicks on a series item event if jscript function is called (AverageImageResolutionOfCountriesOnClientSeriesClicked), the page get fully refrershed.
AjaxLoadingPanel is not working any more and the code behind is not called at all (RadButtonAverageImageResolutionOfCountries_Click not called).
Any ideas of what i may be missing?