The master page is the page where the loading panel is defined, as follows:
| <telerik:RadAjaxLoadingPanel ID="LoadingPanel1" runat="server" Transparency="75" |
| MinDisplayTime="500" BackColor="#E0E0E0"> |
| <img src='<%= RadAjaxLoadingPanel.GetWebResourceUrl(Page, "Telerik.Web.UI.Skins.Default.Ajax.loading6.gif") %>' |
| alt="Loading..." style="border: 0; margin-top: 40px;" /> |
| </telerik:RadAjaxLoadingPanel> |
This control works great nearly all the time except when using the filtering options on said grid. What happens, is that sometimes, not all the time, when you specify a filter on a column, the Loadingpanel comes up fine, the grid filter results are shown, and control is returned to the browser, however, the loading panel never goes away. It happens I'd say about 1 in 5 times, the other times its fine.
Am I using the panel wrong, or is there some known issue? I'm using 2008Q3 version of the controls.
Thanks,
Marty
10 Answers, 1 is accepted
I am afraid this is not a know issue. Furthermore, your RadAjaxLoadingPanel declaration looks fine to me. However I suggest that you send us a runnable sample illustrating the unexpected behavior or at least share the problematic master and content pages. Then I can investigate it in depth and find a resolution for you.
Thank you for your cooperation in advance.
Sincerely yours,
Iana
the Telerik team
Check out Telerik Trainer, the state of the art learning tool for Telerik products.
Thank you for your reply.
Here is the masterpage:
| <%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> |
| <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head runat="server"> |
| <title></title> |
| <link rel="StyleSheet" href="AjaxSessionTimer.css" type="text/css" /> |
| <script type="text/javascript" src="net.js"></script> |
| <script type="text/javascript" src="AjaxSessionTimer.js"></script> |
| <script type="text/javascript" src="~/ChgControlScripts.js"></script> |
| <asp:ContentPlaceHolder ID="head" runat="server"> |
| </asp:ContentPlaceHolder> |
| </head> |
| <body> |
| <script type="text/javascript"> |
| function hideMenuItem() { |
| var menu = $find("<%=RadMenu1.ClientID %>"); |
| menu.findItemByText("root 1").hide(); |
| } |
| function showMenuItem() { |
| var menu = $find("<%=RadMenu1.ClientID %>"); |
| menu.findItemByText("root 1").show(); |
| } |
| function showOrHideMenu() { |
| var menu = $find("<%=RadMenu1.ClientID %>"); |
| if (menu.get_element().style.display == "none") { |
| menu.get_element().style.display = ""; |
| } |
| else { |
| menu.get_element().style.display = "none"; |
| } |
| } |
| </script> |
| <form id="form1" runat="server" enctype="multipart/form-data"> |
| <telerik:RadScriptManager ID="ScriptManager1" runat="server" EnableTheming="True"> |
| <Scripts> |
| <asp:ScriptReference Path="~/ChgControlScripts.js" /> |
| </Scripts> |
| </telerik:RadScriptManager> |
| <telerik:RadFormDecorator ID="RFDHeader" runat="server" DecorationZoneID="header"> |
| </telerik:RadFormDecorator> |
| <telerik:RadFormDecorator ID="RFDContent" runat="server" DecorationZoneID="content" |
| DecoratedControls="RadioButtons,Buttons"></telerik:RadFormDecorator> |
| <telerik:RadFormDecorator ID="RFDLeftCol" runat="server" DecorationZoneID="leftcol"> |
| </telerik:RadFormDecorator> |
| <div id="header"> |
| <table> |
| <tr> |
| <td width="400px" class="pageHeader"> |
| <asp:Label CssClass="headerWithBG" runat="server" ID="lblHeadingHeader" Text="Change Control System"></asp:Label><br /> |
| <hr /> |
| <asp:Label CssClass="plainTextWithBG" runat="server" ID="lblHeaderUser" Text="NA"></asp:Label> |
| <br /> |
| <a class="HyperlinkOnForm" href="javascript:showOrHideMenu();">Toggle Menu</a> |
| </td> |
| </tr> |
| </table> |
| </div> |
| <div id="leftcol"> |
| <telerik:RadMenu ID="RadMenu1" runat="server" Flow="Vertical"> |
| <CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation> |
| <Items> |
| <telerik:RadMenuItem runat="server" Text="Home" NavigateUrl="~/changeControlList.aspx"> |
| </telerik:RadMenuItem> |
| </Items> |
| </telerik:RadMenu> |
| </div> |
| <div id="content"> |
| <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> |
| </asp:ContentPlaceHolder> |
| </div> |
| <telerik:RadAjaxLoadingPanel ID="LoadingPanel1" runat="server" Transparency="75" |
| MinDisplayTime="500" BackColor="#E0E0E0"> |
| <img src='<%= RadAjaxLoadingPanel.GetWebResourceUrl(Page, "Telerik.Web.UI.Skins.Default.Ajax.loading6.gif") %>' |
| alt="Loading..." style="border: 0; margin-top: 40px;" /> |
| </telerik:RadAjaxLoadingPanel> |
| </form> |
| </body> |
| </html> |
As for the mis-behaving grids on content pages... I've gotten it to occur on any content page that I'm using a grid on. Here is one of the simpler ones:
| <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" |
| AutoEventWireup="true" CodeFile="ReasonEdit.aspx.cs" Inherits="CTS.ChangeControl.admin_ReasonEdit" %> |
| <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
| <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server"> |
| </asp:Content> |
| <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> |
| <telerik:RadAjaxPanel runat="server" ID="RadAjaxPanel1" LoadingPanelID="LoadingPanel1"> |
| <table> |
| <tr> |
| <td> |
| <asp:Label ID="lblHeader" runat="server" Text="Change Reasons Administration" CssClass="header" /><br /> |
| <br /> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <table> |
| <tr> |
| <td width="10"> |
| </td> |
| <td> |
| <asp:Label ID="lblReason" runat = "server" CSSClass="plainTextNoBG" Text="Change Reason: "></asp:Label> |
| </td> |
| <td> |
| <telerik:RadTextBox MaxLength="50" ID="txtName" runat="server" Width="300"> |
| </telerik:RadTextBox> |
| <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtName" |
| CssClass="ValidationText" Display="Dynamic" ErrorMessage="Reason for Change">*</asp:RequiredFieldValidator> |
| </td> |
| </tr> |
| <tr> |
| <td width="10"> |
| <br /> |
| </td> |
| <td> |
| </td> |
| <td> |
| </td> |
| </tr> |
| <tr> |
| <td width="10"> |
| <br /> |
| </td> |
| <td> |
| </td> |
| <td> |
| <asp:Button ID="btnAdd" runat="server" Text="Add" OnClick="btnAdd_Click" /> |
| <asp:Button ID="btnClear" runat="server" Text="Clear Form" OnClick="btnClear_Click" /> |
| <asp:Button ID="btnUpdate" runat="server" Text="Update Record" OnClick="btnUpdate_Click" |
| Enabled="False" /> |
| <br /> |
| </td> |
| </tr> |
| </table> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <telerik:RadGrid ID="grdReasons" runat="server" AllowFilteringByColumn="True" OnNeedDataSource="grdReasons_OnNeedDataSource" |
| AllowSorting="True" GridLines="None" ShowGroupPanel="True" OnSelectedIndexChanged="grdReasons_SelectedIndexChanged" |
| AutoGenerateColumns="False" AllowPaging="True"> |
| <MasterTableView DataKeyNames="ReasonForChangeID"> |
| <RowIndicatorColumn> |
| <HeaderStyle Width="20px"></HeaderStyle> |
| </RowIndicatorColumn> |
| <ExpandCollapseColumn> |
| <HeaderStyle Width="20px"></HeaderStyle> |
| </ExpandCollapseColumn> |
| <Columns> |
| <telerik:GridBoundColumn DataField="ReasonForChangeID" EmptyDataText="&nbsp;" |
| HeaderText="Change ReasonID" UniqueName="column3" Visible="False"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="ReasonForChange" EmptyDataText="&nbsp;" HeaderText="Change Reason" |
| UniqueName="column"> |
| </telerik:GridBoundColumn> |
| </Columns> |
| </MasterTableView> |
| <ClientSettings AllowDragToGroup="True" EnablePostBackOnRowClick="True"> |
| <Selecting AllowRowSelect="True" /> |
| </ClientSettings> |
| <FilterMenu EnableTheming="True"> |
| <CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation> |
| </FilterMenu> |
| </telerik:RadGrid> |
| </td> |
| </tr> |
| </table> |
| </telerik:RadAjaxPanel> |
| </asp:Content> |
and the relevant code-behind:
| using System; |
| using System.Collections.Generic; |
| using System.Linq; |
| using System.Web; |
| using System.Web.UI; |
| using System.Web.UI.WebControls; |
| using System.Data; |
| using System.Data.SqlClient; |
| using System.Configuration; |
| using Telerik.Web.UI.Grid; |
| using Telerik.Web.UI; |
| namespace CTS.ChangeControl |
| { |
| public partial class admin_ReasonEdit : SiteSettings |
| { |
| protected void Page_Load(object sender, EventArgs e) |
| { |
| if (!IsPostBack) |
| { |
| if (!CTS.ChangeControl.Authentication.cAuthorization.CanAccessReasonsEdit(Session["currentGroup"].ToString())) |
| Response.Redirect("~/NoAuth/NoAccess.aspx"); |
| Page.Title = lblHeader.Text; |
| LoadGrid(false); |
| } |
| } |
| protected void grdReasons_OnNeedDataSource(object sender, EventArgs e) |
| { |
| LoadGrid(false); |
| } |
| private void LoadGrid(bool needsRebind) |
| { |
| grdReasons.DataSource = CTS.ChangeControl.DAL.cChangeReasons.GetReasons(); |
| if(needsRebind) |
| grdReasons.Rebind(); |
| } |
| protected void grdReasons_SelectedIndexChanged(object sender, EventArgs e) |
| { |
| GridDataItem item = (GridDataItem)grdReasons.SelectedItems[0]; |
| string str = item.GetDataKeyValue("ReasonForChangeID").ToString(); |
| CTS.ChangeControl.DAL.ChangeReason selectedReason = CTS.ChangeControl.DAL.cChangeReasons.GetSingleReason(Convert.ToInt32(str)); |
| Session["CurrentReason"] = selectedReason; |
| txtName.Text = selectedReason.ReasonForChange; |
| btnUpdate.Enabled = true; |
| } |
| } |
| } |
I load all grids I'm using in the app in the same fashion, so it's possible it's developer error, but I'm not sure.
I hope this is enough info. Let me know if you need more.
Thanks in advance for the help,
Marty
Thank you for sharing your code with us.
I would suggest that you place the RadAjaxLoadingPanel in this page/control where you reference it, in this case in the content page.
However, if you use same RadAjaxLoadingPanel in all your pages, then you could use RadAjaxManager and RadAjaxManagerProxy to ajaxify your application instead of RadAjaxPanel:
MasterPage:
| <form id="form1" runat="server" enctype="multipart/form-data"> |
| <telerik:RadScriptManager ID="ScriptManager1" runat="server" EnableTheming="True"> |
| <Scripts> |
| <asp:ScriptReference Path="~/ChgControlScripts.js" /> |
| </Scripts> |
| </telerik:RadScriptManager> |
| <telerik:RadFormDecorator ID="RFDHeader" runat="server" DecorationZoneID="header"> |
| </telerik:RadFormDecorator> |
| <telerik:RadFormDecorator ID="RFDContent" runat="server" DecorationZoneID="content" |
| DecoratedControls="RadioButtons,Buttons"></telerik:RadFormDecorator> |
| <telerik:RadFormDecorator ID="RFDLeftCol" runat="server" DecorationZoneID="leftcol"> |
| </telerik:RadFormDecorator> |
| <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" |
| DefaultLoadingPanelID="LoadingPanel1" /> |
| <div id="header"> |
| <table> |
| <tr> |
| <td width="400px" class="pageHeader"> |
| <asp:Label CssClass="headerWithBG" runat="server" ID="lblHeadingHeader" Text="Change Control System"></asp:Label><br /> |
| <hr /> |
| <asp:Label CssClass="plainTextWithBG" runat="server" ID="lblHeaderUser" Text="NA"></asp:Label> |
| <br /> |
| <a class="HyperlinkOnForm" href="javascript:showOrHideMenu();">Toggle Menu</a> |
| </td> |
| </tr> |
| </table> |
| </div> |
| <div id="leftcol"> |
| <telerik:RadMenu ID="RadMenu1" runat="server" Flow="Vertical"> |
| <CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation> |
| <Items> |
| <telerik:RadMenuItem runat="server" Text="Home" NavigateUrl="~/changeControlList.aspx"> |
| </telerik:RadMenuItem> |
| </Items> |
| </telerik:RadMenu> |
| </div> |
| <div id="content"> |
| <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> |
| </asp:ContentPlaceHolder> |
| </div> |
| <telerik:RadAjaxLoadingPanel ID="LoadingPanel1" runat="server" Transparency="75" |
| MinDisplayTime="500" BackColor="#E0E0E0"> |
| <img src='<%= RadAjaxLoadingPanel.GetWebResourceUrl(Page, "Telerik.Web.UI.Skins.Default.Ajax.loading6.gif") %>' |
| alt="Loading..." style="border: 0; margin-top: 40px;" /> |
| </telerik:RadAjaxLoadingPanel> |
| </form> |
ContentPage:
| <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> |
| <telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxy1" runat="server"> |
| <AjaxSettings> |
| <telerik:AjaxSetting AjaxControlID="Panel1"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="Panel1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </AjaxSettings> |
| </telerik:RadAjaxManagerProxy> |
| <asp:Panel runat="server" ID="Panel1"> |
| <table> |
| <tr> |
| <td> |
| <asp:Label ID="lblHeader" runat="server" Text="Change Reasons Administration" CssClass="header" /><br /> |
| <br /> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <table> |
| <tr> |
| <td width="10"> |
| </td> |
| <td> |
| <asp:Label ID="lblReason" runat = "server" CSSClass="plainTextNoBG" Text="Change Reason: "></asp:Label> |
| </td> |
| <td> |
| <telerik:RadTextBox MaxLength="50" ID="txtName" runat="server" Width="300"> |
| </telerik:RadTextBox> |
| <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtName" |
| CssClass="ValidationText" Display="Dynamic" ErrorMessage="Reason for Change">*</asp:RequiredFieldValidator> |
| </td> |
| </tr> |
| <tr> |
| <td width="10"> |
| <br /> |
| </td> |
| <td> |
| </td> |
| <td> |
| </td> |
| </tr> |
| <tr> |
| <td width="10"> |
| <br /> |
| </td> |
| <td> |
| </td> |
| <td> |
| <asp:Button ID="btnAdd" runat="server" Text="Add" OnClick="btnAdd_Click" /> |
| <asp:Button ID="btnClear" runat="server" Text="Clear Form" OnClick="btnClear_Click" /> |
| <asp:Button ID="btnUpdate" runat="server" Text="Update Record" OnClick="btnUpdate_Click" |
| Enabled="False" /> |
| <br /> |
| </td> |
| </tr> |
| </table> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <telerik:RadGrid ID="grdReasons" runat="server" AllowFilteringByColumn="True" OnNeedDataSource="grdReasons_OnNeedDataSource" |
| AllowSorting="True" GridLines="None" ShowGroupPanel="True" OnSelectedIndexChanged="grdReasons_SelectedIndexChanged" |
| AutoGenerateColumns="False" AllowPaging="True"> |
| <MasterTableView DataKeyNames="ReasonForChangeID"> |
| <RowIndicatorColumn> |
| <HeaderStyle Width="20px"></HeaderStyle> |
| </RowIndicatorColumn> |
| <ExpandCollapseColumn> |
| <HeaderStyle Width="20px"></HeaderStyle> |
| </ExpandCollapseColumn> |
| <Columns> |
| <telerik:GridBoundColumn DataField="ReasonForChangeID" EmptyDataText="&nbsp;" |
| HeaderText="Change ReasonID" UniqueName="column3" Visible="False"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn DataField="ReasonForChange" EmptyDataText="&nbsp;" HeaderText="Change Reason" |
| UniqueName="column"> |
| </telerik:GridBoundColumn> |
| </Columns> |
| </MasterTableView> |
| <ClientSettings AllowDragToGroup="True" EnablePostBackOnRowClick="True"> |
| <Selecting AllowRowSelect="True" /> |
| </ClientSettings> |
| <FilterMenu EnableTheming="True"> |
| <CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation> |
| </FilterMenu> |
| </telerik:RadGrid> |
| </td> |
| </tr> |
| </table> |
| </asp:Panel> |
| </asp:Content> |
Find more about RadAjax and MasterPages in the below resources:
http://www.telerik.com/help/aspnet-ajax/ajxajaxmasterpage.html
http://www.telerik.com/help/aspnet-ajax/ajax-manager-proxy.html
Try it out and let me know if the issue persists.
Sincerely yours,
Iana
the Telerik team
Check out Telerik Trainer, the state of the art learning tool for Telerik products.
Thank you for the suggestions. I attempted your suggestion with the RadAjaxProxy since I'm using a masterpage setup and the loading panel IS used on all of my content pages.
Unfortunately, the same behavior is occurring... except it defiintely seems to be related to the particular filters being chosen:
- Between
- NotBetween
- IsEmpty
- NotIsEmpty
- IsNull
- NotIsNull
I'm not sure if my input is somehow screwing up those filters, but the last 4 should be ignoring any input and I'm not quite sure what kind of input the 1st two require.
I also tried using the proxy setup, but putting the loadingpanel right on the content page, and get the same results.
Is there anything else I can try? Perhaps a way to hide the filters causing issues?
Thanks again,
Marty
It's intermittant and doesn't appear to be tied to anything in particular (ie. no particular sequence of steps) and tracing the JS when it does happen ends up with a null reference somewhere in the semi-obstificated Microsoft AJAX library. We don't think it's the MS library causing the problem though.
Please review the below articles for more information on RadGrid filtering functions and customizing filtering menu:
http://www.telerik.com/help/aspnet-ajax/grdbasicfiltering.html
http://www.telerik.com/help/aspnet-ajax/grdreducingfiltermenuoptions.html
Additionally, I suggest that you send a sample project where the issue is reproducible (in a formal support ticket). I will debug it locally and find a proper solution for you.
And to Tallen:
It would be great if you could send us sample code for further investigation of the behavior you described as it is not a known one. A live Url could also be of help.
Regards,
Iana
the Telerik team
Check out Telerik Trainer, the state of the art learning tool for Telerik products.
Thank you for submitting your inquiry to the Telerik Support.
Your ticket ID is : 187733
Working project attached.
Thank you for opening a formal support ticket and for sending a sample project.
You can find my answer to the preceding issue there.
Best wishes,
Iana
the Telerik team
Check out Telerik Trainer, the state of the art learning tool for Telerik products.
I did recieve your response to my support ticket and just wanted to let you know that I plan on repsonding, just need to find the time. Thanks.
Marty
I had a similar issue to the OP, but found a work around I wanted to share. My project is using Telerik.Web.UI, Version=2009.1.311.20, using RadTreeView and updating a panel based on the clicked node. If I click around in the tree faster than the application can keep up, the AjaxLoadingPanel would stay visible after the application finally catches up.
The work around is to set MinDisplayTime="0" on the RadAjaxLoadingPanel. Now, if you click nodes rapidly in the tree, the AjaxLoadingPanel will disappear and the panel will revert to the previously displayed content. Once the application catches up, the panel displays the final node's contents.
The sample code illustrates the problem:
default.aspx:
| <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> |
| <%@ Register Assembly="Telerik.Web.UI, Version=2009.1.311.20, Culture=neutral, PublicKeyToken=121fae78165ba3d4" |
| Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
| <%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" |
| Namespace="System.Web.UI" TagPrefix="asp" %> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head runat="server"> |
| <title></title> |
| </head> |
| <body> |
| <form id="form1" runat="server"> |
| <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> |
| </telerik:RadScriptManager> |
| <div> |
| <table style="width: 100%;"> |
| <tr> |
| <td style="width: 30%" valign="top"> |
| |
| <telerik:RadTreeView ID="RadTreeView1" Runat="server"> |
| <Nodes> |
| <telerik:RadTreeNode runat="server" Text="Root RadTreeNode1"> |
| <Nodes> |
| <telerik:RadTreeNode runat="server" Text="Child RadTreeNode 1"> |
| </telerik:RadTreeNode> |
| <telerik:RadTreeNode runat="server" Text="Child RadTreeNode 2"> |
| </telerik:RadTreeNode> |
| <telerik:RadTreeNode runat="server" Text="Child RadTreeNode 3"> |
| </telerik:RadTreeNode> |
| <telerik:RadTreeNode runat="server" Text="Child RadTreeNode 4"> |
| </telerik:RadTreeNode> |
| <telerik:RadTreeNode runat="server" Text="Child RadTreeNode 5"> |
| </telerik:RadTreeNode> |
| </Nodes> |
| </telerik:RadTreeNode> |
| </Nodes> |
| </telerik:RadTreeView> |
| </td> |
| <td> |
| |
| <asp:Panel ID="Panel1" runat="server"> |
| <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> |
| </asp:Panel> |
| </td> |
| </tr> |
| </table> |
| </div> |
| <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> |
| <AjaxSettings> |
| <telerik:AjaxSetting AjaxControlID="RadTreeView1"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="Panel1" |
| LoadingPanelID="RadAjaxLoadingPanel1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </AjaxSettings> |
| </telerik:RadAjaxManager> |
| <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" Runat="server" InitialDelayTime="20" MinDisplayTime="50" |
| height="75px" width="75px"> |
| <img alt="Loading..." |
| src='<%= RadAjaxLoadingPanel.GetWebResourceUrl(Page, "Telerik.Web.UI.Skins.Default.Ajax.loading.gif") %>' |
| style="border:0px;" /> |
| </telerik:RadAjaxLoadingPanel> |
| </form> |
| </body> |
| </html> |
| Partial Class _Default |
| Inherits System.Web.UI.Page |
| Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load |
| End Sub |
| Protected Sub RadTreeView1_NodeClick(ByVal sender As Object, ByVal e As Telerik.Web.UI.RadTreeNodeEventArgs) Handles RadTreeView1.NodeClick |
| Label1.Text = e.Node.Text |
| System.Threading.Thread.Sleep(3000) |
| End Sub |
| End Class |