I'm developing a dashboard type web page where I have multiple (6 currently, more will be added later) widgets I would like to load asynchronously after the page loads. I would like each widget to be it's own UserControl, but if that is not possible, I can put everything on one page. It is also desired for each widget to have its own loading panel, so a widget is finished loading, their respective panel is hidden and the widget is usable.
I need these to all begin loading at the same time because each widget is pulling data from different systems and could take several seconds for each one. If they are loaded serially, it will take a long time for the page to completely load. I've tried using both the RadAJAXManager and RadAJAXPanels and have been unable to come up with a working solutions.
A similar question was posted (http://www.telerik.com/community/forums/aspnet-ajax/ajax/multiple-radajaxpanel-s-invoked-on-pageload-causes-errors.aspx) but I never saw a solutions posted that worked.
Here is the one version of the code I'm trying.
Any guidance would be greatly appreciated.
Thanks,
Greg
I need these to all begin loading at the same time because each widget is pulling data from different systems and could take several seconds for each one. If they are loaded serially, it will take a long time for the page to completely load. I've tried using both the RadAJAXManager and RadAJAXPanels and have been unable to come up with a working solutions.
A similar question was posted (http://www.telerik.com/community/forums/aspnet-ajax/ajax/multiple-radajaxpanel-s-invoked-on-pageload-causes-errors.aspx) but I never saw a solutions posted that worked.
Here is the one version of the code I'm trying.
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script type="text/javascript"> function pageLoad(sender, eventArgs) { if (!eventArgs.get_isPartialLoad()) { $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("LoadWidget1"); $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("LoadWidget2"); $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("LoadWidget3"); $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("LoadWidget4"); $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("LoadWidget5"); $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("LoadWidget6"); } } </script></telerik:RadCodeBlock><telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server"></telerik:RadAjaxLoadingPanel> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel2" runat="server" BackColor="Red"></telerik:RadAjaxLoadingPanel> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel3" runat="server" BackColor="Red"></telerik:RadAjaxLoadingPanel> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel4" runat="server" BackColor="Red"></telerik:RadAjaxLoadingPanel> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel5" runat="server" BackColor="Red"></telerik:RadAjaxLoadingPanel> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel6" runat="server" BackColor="Red"></telerik:RadAjaxLoadingPanel> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" RequestQueueSize="10" EnableAJAX="true"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadAjaxManager1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="panel1" LoadingPanelID="RadAjaxLoadingPanel1" /> <telerik:AjaxUpdatedControl ControlID="panel2" LoadingPanelID="RadAjaxLoadingPanel2" /> <telerik:AjaxUpdatedControl ControlID="panel3" LoadingPanelID="RadAjaxLoadingPanel3" /> <telerik:AjaxUpdatedControl ControlID="panel4" LoadingPanelID="RadAjaxLoadingPanel4" /> <telerik:AjaxUpdatedControl ControlID="panel5" LoadingPanelID="RadAjaxLoadingPanel5" /> <telerik:AjaxUpdatedControl ControlID="panel6" LoadingPanelID="RadAjaxLoadingPanel6" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings></telerik:RadAjaxManager><asp:Panel ID="panel1" runat="server"></asp:Panel><br /><asp:Panel ID="panel2" runat="server"></asp:Panel><br /><asp:Panel ID="panel3" runat="server"></asp:Panel><br /><asp:Panel ID="panel4" runat="server"></asp:Panel><br /><asp:Panel ID="panel5" runat="server"></asp:Panel><br /><asp:Panel ID="panel6" runat="server"></asp:Panel><br />Protected Sub RadAjaxManager1_AjaxRequest(sender As Object, e As Telerik.Web.UI.AjaxRequestEventArgs) Handles RadAjaxManager1.AjaxRequest If e.Argument = "LoadWidget1" Then System.Threading.Thread.Sleep(1000) panel1.Controls.Add(New LiteralControl(Now.ToLongTimeString)) ElseIf e.Argument = "LoadWidget2" Then System.Threading.Thread.Sleep(1000) panel2.Controls.Add(New LiteralControl(Now.ToLongTimeString)) ElseIf e.Argument = "LoadWidget3" Then System.Threading.Thread.Sleep(3000) panel3.Controls.Add(New LiteralControl(Now.ToLongTimeString)) ElseIf e.Argument = "LoadWidget4" Then System.Threading.Thread.Sleep(4000) panel4.Controls.Add(New LiteralControl(Now.ToLongTimeString)) ElseIf e.Argument = "LoadWidget5" Then System.Threading.Thread.Sleep(5000) panel5.Controls.Add(New LiteralControl(Now.ToLongTimeString)) ElseIf e.Argument = "LoadWidget6" Then System.Threading.Thread.Sleep(6000) panel6.Controls.Add(New LiteralControl(Now.ToLongTimeString)) End IfEnd SubAny guidance would be greatly appreciated.
Thanks,
Greg