<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
  <channel>
    <title>Atanas Korchev's blog</title>
    <description>Atanas Korchev's blog</description>
    <link>http://blogs.telerik.com/AtanasKorchev/Posts.aspx</link>
    <docs>http://backend.userland.com/rss</docs>
    <item>
      <title>Internet Explorer JavaScript Performance Tip - use the &amp;quot;children&amp;quot; property</title>
      <description>&lt;p&gt;Today I was profiling the initialization time of RadTreeView for ASP.NET Ajax and found out that the biggest bottleneck was traversing the DOM tree. The code looks something like this:&lt;/p&gt;
&lt;div style="border: 1px solid rgb(127, 157, 185); overflow: auto; background-color: white; line-height: 100% ! important; font-family: courier new; font-size: 11px;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="border-width: 0px; border-bottom: 0px solid rgb(238, 238, 238); margin: 2px 0px; width: 99%; border-collapse: collapse; background-color: rgb(255, 255, 255);"&gt;
    &lt;col style="border-bottom: 1px solid rgb(247, 247, 247); font-family: courier new; font-size: 11px; padding-left: 10px; white-space: nowrap;" /&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size: 11px;"&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;//get_childListElement()&amp;nbsp;returns&amp;nbsp;an&amp;nbsp;HTML&amp;nbsp;element&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&lt;span style="color: blue;"&gt;var&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;childNodes&amp;nbsp;=&amp;nbsp;parent.get_childListElement().childNodes;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue;"&gt;for&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: blue;"&gt;var&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;i&amp;nbsp;=&amp;nbsp;0,&amp;nbsp;length&amp;nbsp;=&amp;nbsp;childNodes.length;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;length;&amp;nbsp;i++)&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;{&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;var&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;childNode&amp;nbsp;=&amp;nbsp;childNodes[i];&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;//Perform&amp;nbsp;additional&amp;nbsp;initialization&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;}&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;p&gt;I tested with 10000 elements and in IE7 I got about 25000ms whilst in FireFox the total time was around 33ms (Core 2 Duo @ 2.33GHz). Quite a difference if you ask me.&lt;/p&gt;
&lt;p&gt;I thought that there may be some IE specific method/property which could perform better and I dug into MSDN. And a few minutes later I found the &lt;a href="mhtml:%7B38C3F76A-7CE8-4E21-8E81-EDF32F46CE68%7Dmid://00000239/%21x-usc:http://msdn.microsoft.com/en-us/library/ms537446%28VS.85%29.aspx"&gt;children&lt;/a&gt; property!!! Apparently the &lt;strong&gt;children&lt;/strong&gt; collection contains only HTML elements (whilst &lt;strong&gt;childNodes&lt;/strong&gt; is full of TextNode elements). I changed the code like this:&lt;/p&gt;
&lt;div style="border: 1px solid rgb(127, 157, 185); overflow: auto; background-color: white; line-height: 100% ! important; font-family: courier new; font-size: 11px;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="border-width: 0px; border-bottom: 0px solid rgb(238, 238, 238); margin: 2px 0px; width: 99%; border-collapse: collapse; background-color: rgb(255, 255, 255);"&gt;
    &lt;col style="border-bottom: 1px solid rgb(247, 247, 247); font-family: courier new; font-size: 11px; padding-left: 10px; white-space: nowrap;" /&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size: 11px;"&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;//get_childListElement()&amp;nbsp;returns&amp;nbsp;an&amp;nbsp;HTML&amp;nbsp;element&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&lt;span style="color: blue;"&gt;var&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;childNodes&amp;nbsp;=&amp;nbsp;parent.get_childListElement().children;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue;"&gt;for&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: blue;"&gt;var&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;i&amp;nbsp;=&amp;nbsp;0,&amp;nbsp;length&amp;nbsp;=&amp;nbsp;childNodes.length;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;length;&amp;nbsp;i++)&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;{&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;var&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;childNode&amp;nbsp;=&amp;nbsp;childNodes[i];&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;//Perform&amp;nbsp;additional&amp;nbsp;initialization&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;}&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;p&gt;Lo and behold the total traverse time went down to around 30ms in IE7 !!! This is what I call a performance boost :)&lt;/p&gt;
&lt;p&gt;To make it cross-browser friendly I ended up with this:&lt;/p&gt;
&lt;p&gt;
&lt;div style="border: 1px solid rgb(127, 157, 185); overflow: auto; background-color: white; line-height: 100% ! important; font-family: courier new; font-size: 11px;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="border-width: 0px; border-bottom: 0px solid rgb(238, 238, 238); margin: 2px 0px; width: 99%; border-collapse: collapse; background-color: rgb(255, 255, 255);"&gt;
    &lt;col style="border-bottom: 1px solid rgb(247, 247, 247); font-family: courier new; font-size: 11px; padding-left: 10px; white-space: nowrap;" /&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size: 11px;"&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;var&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;childList&amp;nbsp;=&amp;nbsp;parent.get_childListElement();&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&lt;span style="color: blue;"&gt;var&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;childNodes&amp;nbsp;=&amp;nbsp;childList.children&amp;nbsp;||&amp;nbsp;childList.childNodes;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;The bottom line is that you can expect some serious performance improvements in treeviews with lots of nodes. For example the initialization time of a fully expanded treeview with 10000 (10x10x10x10) nodes improved by 30% (3152ms vs. 2249ms). However if the total number of nodes per level is greater e.g. 10x1000 the performance boost is even bigger - 5590ms vs. 1851ms which is 66%.&lt;/p&gt;
&lt;p&gt;I have attached a sample page with tests using unordered list with 10000 list items.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.telerik.com/Libraries/Atanas%20Korchev/DomAccess%20%281%29.sflb"&gt;Source&lt;/a&gt;&lt;/p&gt;
</description>
      <link>http://blogs.telerik.com/AtanasKorchev/Posts/08-08-14/Internet_Explorer_JavaScript_Performance_Tip_-_use_the_quot_children_quot_property.aspx</link>
      <author>Atanas Korchev</author>
      <comments>http://blogs.telerik.com/AtanasKorchev/Posts/08-08-14/Internet_Explorer_JavaScript_Performance_Tip_-_use_the_quot_children_quot_property.aspx</comments>
      <guid isPermaLink="false">203a01ee-78e3-48cd-a55d-4d3e5df01713</guid>
      <pubDate>Thu, 14 Aug 2008 09:03:37 GMT</pubDate>
    </item>
    <item>
      <title>Yet another update of RadControls for ASP.NET Ajax DynamicData support</title>
      <description>&lt;p&gt;ASP.NET Dynamic Data has just gone official with the SP1 release of Visual Studio 2008 and .NET 3.5. We have just released updated version of our Dynamic Data bits which is tested against the official release and has few minor improvements (such as implementation of the DataControl property). Get it from &lt;a href="http://www.telerik.com/download/Telerik.DynamicData_2008_2_813.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;
</description>
      <link>http://blogs.telerik.com/AtanasKorchev/Posts/08-08-13/Yet_another_update_of_RadControls_for_ASP_NET_Ajax_DynamicData_support.aspx</link>
      <author>Atanas Korchev</author>
      <comments>http://blogs.telerik.com/AtanasKorchev/Posts/08-08-13/Yet_another_update_of_RadControls_for_ASP_NET_Ajax_DynamicData_support.aspx</comments>
      <guid isPermaLink="false">ef6f14ab-e3cd-45ba-955c-e56c499993d5</guid>
      <pubDate>Wed, 13 Aug 2008 10:22:10 GMT</pubDate>
    </item>
    <item>
      <title>RadTreeView for ASP.NET Ajax Load On Demand Modes - why so many?</title>
      <description>&lt;p&gt;In my &lt;a href="http://blogs.telerik.com/AtanasKorchev/Posts/08-08-06/Performance_Tip_Use_Web_Service_Load_On_Demand_with_RadTreeView.aspx"&gt;previous&lt;/a&gt; blog post I told you how the &lt;a href="http://www.telerik.com/demos/aspnet/prometheus/TreeView/Examples/Programming/WebService/DefaultCS.aspx"&gt;Web Service&lt;/a&gt; load on demand mode of &lt;a href="http://www.telerik.com/products/aspnet-ajax/controls/treeview/overview.aspx"&gt;RadTreeView&lt;/a&gt; delivers the best performance. A logical question arises - why we have the other load on demand modes (&lt;a href="http://www.telerik.com/demos/aspnet/prometheus/TreeView/Examples/Programming/WebService/DefaultCS.aspx"&gt;server side postback&lt;/a&gt; and &lt;a href="http://www.telerik.com/demos/aspnet/prometheus/TreeView/Examples/Programming/ClientLoadOnDemandSql/DefaultCS.aspx"&gt;callback&lt;/a&gt;) if they do not perform on par with the Web Service mode. The answer is not that obvious. The truth is every load on demand mode has its pros and cons. The following table describes visually the load on demand modes according to three criterions - performance, templates support, ease of implementation.&lt;/p&gt;
&lt;div style="display: none;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/div&gt;
&lt;div style="display: none;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/div&gt;
&lt;div style="display: none;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/div&gt;
&lt;div style="display: none;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/div&gt;
&lt;div style="display: none;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/div&gt;
&lt;div style="display: none;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/div&gt;
&lt;table cellspacing="0" cellpadding="2" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td width="196" valign="top"&gt;&amp;nbsp;&lt;/td&gt;
            &lt;td width="195" valign="top"&gt;Performance&lt;/td&gt;
            &lt;td width="186" valign="top"&gt;Templates Support&lt;br /&gt;
            &lt;/td&gt;
            &lt;td width="180" valign="top"&gt;Ease of Implementation&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td width="197" valign="top"&gt;Web Service&lt;/td&gt;
            &lt;td width="197" valign="top"&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;/td&gt;
            &lt;td width="188" valign="top"&gt;&lt;img height="18" border="0" width="19" style="border: 0px none ;" alt="half" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-half_thumb.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border: 0px none ;" alt="hollow" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-hollow_thumb.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border: 0px none ;" alt="hollow" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-hollow_thumb.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border: 0px none ;" alt="hollow" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-hollow_thumb.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border: 0px none ;" alt="hollow" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-hollow_thumb.sflb" /&gt;&lt;/td&gt;
            &lt;td width="182" valign="top"&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="hollow" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-hollow_thumb.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="hollow" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-hollow_thumb.sflb" /&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td width="196" valign="top"&gt;Server Side Callback&lt;/td&gt;
            &lt;td width="198" valign="top"&gt;&lt;img height="18" border="0" width="19" style="border: 0px none ;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border: 0px none ;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border: 0px none ;" alt="hollow" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-hollow_thumb.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border: 0px none ;" alt="hollow" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-hollow_thumb.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border: 0px none ;" alt="hollow" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-hollow_thumb.sflb" /&gt; &lt;/td&gt;
            &lt;td width="189" valign="top"&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="hollow" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-hollow_thumb.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="hollow" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-hollow_thumb.sflb" /&gt; &lt;/td&gt;
            &lt;td width="184" valign="top"&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="hollow" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-hollow_thumb.sflb" /&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td width="195" valign="top"&gt;Server Side PostBack&lt;/td&gt;
            &lt;td width="198" valign="top"&gt;&lt;img height="18" border="0" width="19" style="border: 0px none ;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border: 0px none ;" alt="hollow" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-hollow_thumb.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border: 0px none ;" alt="hollow" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-hollow_thumb.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border: 0px none ;" alt="hollow" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-hollow_thumb.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border: 0px none ;" alt="hollow" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-hollow_thumb.sflb" /&gt;&lt;/td&gt;
            &lt;td width="189" valign="top"&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;/td&gt;
            &lt;td width="185" valign="top"&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;img height="18" border="0" width="19" style="border-width: 0px;" alt="full" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-full_3.sflb" /&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;And now lets delve into more details.&lt;/p&gt;
&lt;h3&gt;Web Service&lt;/h3&gt;
&lt;h4&gt;Performance&lt;/h4&gt;
&lt;p&gt;The Web Service load on demand mode is the undisputed champion in terms of performance. It does not execute the page lifecycle, does not send the ViewState to the server and outputs tidy JSON which saves precious traffic.&lt;/p&gt;
&lt;h4&gt;Templates&lt;/h4&gt;
&lt;p&gt;The Web Service load on demand mode completely disregards the template set for RadTreeView (read as "templates don't work at all"). The reason is simple. Since only JSON is sent back and forth the actual template contents (controls and HTML that is) are lost. RadTreeView utilizes its &lt;a href="http://www.telerik.com/demos/aspnet/prometheus/TreeView/Examples/Programming/AddRemoveDisableNodesClientSide/DefaultCS.aspx"&gt;client-side rendering&lt;/a&gt; abilities to convert the JSON returned from the web service into HTML representation of tree nodes. A possible workaround is to use &lt;a href="http://weblogs.asp.net/bleroy/archive/2008/07/30/using-client-templates-part-1.aspx"&gt;ASP.NET Ajax 4.0 templates&lt;/a&gt;. Check &lt;a href="http://blogs.telerik.com/AtanasKorchev/Posts/08-07-23/RadControls_and_ASP_NET_Ajax_4_0_Preview.aspx"&gt;here&lt;/a&gt; for a sample project and running demo.&lt;/p&gt;
&lt;h4&gt;Implementation&lt;/h4&gt;
&lt;p&gt;I won't say that implementing a Web Service method is hard but it is not as easy as subscribing to a server-side event (&lt;a href="http://www.telerik.com/help/aspnet-ajax/tree_servernodeexpand.html"&gt;NodeExpand&lt;/a&gt;).&lt;/p&gt;
&lt;h3&gt;Server Side Callback&lt;/h3&gt;
&lt;h4&gt;Performance&lt;/h4&gt;
&lt;p&gt;Server Side Callback mode comes second here. Using ASP.NET 2.0 Callbacks involves sending the ViewState of the page back to the server. The page life cycle is executed as well. The good thing is that only a small portion of HTML is returned - only the nodes added during the NodeExpand event.&lt;/p&gt;
&lt;h4&gt;Templates&lt;/h4&gt;
&lt;p&gt;Server Side Callback mode supports templates with one limitation. It does not support any controls with client-side behavior (e.g. other RadControls for ASP.NET Ajax). You can use anything else though - static HTML, text boxes, buttons etc.&lt;/p&gt;
&lt;h4&gt;Implementation&lt;/h4&gt;
&lt;p&gt;Somehow it feels easier to subscribe to an event and create RadTreeNode objects than implement a web service. A good think to know when using Server Side Callback mode is that only the expanded RadTreeNode will be updated after the load on demand request finishes. If you update any other control in the page the changes will not be applied (rendered).&lt;/p&gt;
&lt;h3&gt;Server Side PostBack&lt;/h3&gt;
&lt;h4&gt;Performance&lt;/h4&gt;
&lt;p&gt;The Server Side PostBack mode has worst performance without any doubts. The page is posted back and as a result all controls are rendered and updated. A possible workaround is to wrap the RadTreeView control inside RadAjaxPanel or UpdatePanel. Then only the RadTreeView control will be updated. Still performance will be worse than other load on demand modes because the whole RadTreeView control will be rendered and updated.&lt;/p&gt;
&lt;h4&gt;Templates&lt;/h4&gt;
&lt;p&gt;Full support for templates with no limitations.&lt;/p&gt;
&lt;h4&gt;Implementation&lt;/h4&gt;
&lt;p&gt;As with the Server Side Callback mode the user should subscribe to the NodeExpand event and add child nodes to the currently expanded node. A side effect from the full postback is that the developer can update other controls in the page (provided RadTreeView is not wrapped inside RadAjaxPanel/UpdatePanel).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I hope this helps,&lt;/p&gt;
&lt;p&gt;Atanas&lt;/p&gt;
</description>
      <link>http://blogs.telerik.com/AtanasKorchev/Posts/08-08-08/RadTreeView_for_ASP_NET_Ajax_Load_On_Demand_Modes_-_why_so_many.aspx</link>
      <author>Atanas Korchev</author>
      <comments>http://blogs.telerik.com/AtanasKorchev/Posts/08-08-08/RadTreeView_for_ASP_NET_Ajax_Load_On_Demand_Modes_-_why_so_many.aspx</comments>
      <guid isPermaLink="false">a1a5f806-ef1d-4e19-9946-830dc1a383e1</guid>
      <pubDate>Fri, 08 Aug 2008 04:16:40 GMT</pubDate>
    </item>
    <item>
      <title>Performance Tip: Use Web Service Load On Demand with RadTreeView</title>
      <description>&lt;p&gt;A common scenario for a treeview control is to populate it with lots of nodes. Adding a few thousand nodes initially is not a good idea though. Think of all the rendered HTML. Even rendering a few thousand strings (without any extra markup) will result in a few megabytes of HTML. That's where load on demand comes into play. RadTreeView supports three different types of load on demand: &lt;a href="http://www.telerik.com/demos/aspnet/prometheus/TreeView/Examples/Programming/WebService/DefaultCS.aspx"&gt;web service&lt;/a&gt;, &lt;a href="http://www.telerik.com/demos/aspnet/prometheus/TreeView/Examples/Programming/ClientLoadOnDemandSql/DefaultCS.aspx"&gt;server side callback&lt;/a&gt; and &lt;a href="http://www.telerik.com/demos/aspnet/prometheus/TreeView/Examples/Programming/LoadOnDemandSql/DefaultCS.aspx"&gt;server side postback&lt;/a&gt;. From those the server-side postback mode is least efficient in terms of performance because it postbacks and updates the whole page. Here is how the output looks like (total size 28775 bytes):&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-PerformanceTipUseWebServiceLoadOnDemandw_A6B5-image_2.sflb"&gt;&lt;img height="272" border="0" width="1028" style="border: 0px none ;" alt="image" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-PerformanceTipUseWebServiceLoadOnDemandw_A6B5-image_thumb.sflb" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;As you can see the complete page is rendered and loaded again.&lt;/p&gt;
&lt;p&gt;Server-side callback relies on the ASP.NET 2.0 built-in callbacks. It is significantly faster than the server-side postback mode because it renders only the nodes loaded on demand as well as some event validation data. Here is a typical output rendered by a server-side callback (total size is 1631 bytes):&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-PerformanceTipUseWebServiceLoadOnDemandw_A6B5-image_6.sflb"&gt;&lt;img height="302" border="0" width="1028" style="border: 0px none ;" alt="image" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-PerformanceTipUseWebServiceLoadOnDemandw_A6B5-image_thumb_2.sflb" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Still the server-side callback mode is not the fastest load on demand mode supported by RadTreeView. Any callback request submits the page ViewState back to the server and causes the &lt;a href="http://msdn.microsoft.com/en-us/library/ms178472.aspx"&gt;page lifecycle&lt;/a&gt; to execute. Indeed the lifecycle is not full but still it consumes some server time and the developer should avoid to perform any other tasks apart from populating the treeview. The &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.page.iscallback.aspx"&gt;IsCallback&lt;/a&gt; property comes in handy in such cases and helps the developer avoid hitting the database for no reason during load on demand requests. &lt;/p&gt;
&lt;p&gt;When you want to squeeze the last bit of performance from RadTreeView you should opt for web-service load on demand. Here is how a typical web service load on demand request looks like (total size is 1745 bytes):&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-PerformanceTipUseWebServiceLoadOnDemandw_A6B5-image_8.sflb"&gt;&lt;img height="282" border="0" width="1028" style="border: 0px none ;" alt="image" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-PerformanceTipUseWebServiceLoadOnDemandw_A6B5-image_thumb_3.sflb" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;As you can see only JSON is transmitted in this case - no HTML or ViewState. On top of it the page lifecycle is not executed at all. Now the best part - I will tell you how to decrease that output even more!&lt;/p&gt;
&lt;p&gt;By default the web service method returns objects of type RadTreeNodeData which contain the most commonly used properties of a RadTreeNode object. However you may not need all of them. So why transmit empty values in the JSON output? The solution is simple - create a custom class containing only the properties you need to use - e.g. Text, Value and ExpandMode:&lt;/p&gt;
&lt;div style="background: black none repeat scroll 0% 0%; font-weight: bold; font-size: 10pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: white; font-family: consolas;"&gt;
&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(204, 120, 50);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(204, 120, 50);"&gt;class&lt;/span&gt; &lt;span style="color: rgb(255, 198, 109);"&gt;NodeData&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(204, 120, 50);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(204, 120, 50);"&gt;string&lt;/span&gt; Value { &lt;span style="color: rgb(204, 120, 50);"&gt;get&lt;/span&gt;; &lt;span style="color: rgb(204, 120, 50);"&gt;set&lt;/span&gt;; }&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(204, 120, 50);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(204, 120, 50);"&gt;string&lt;/span&gt; Text { &lt;span style="color: rgb(204, 120, 50);"&gt;get&lt;/span&gt;; &lt;span style="color: rgb(204, 120, 50);"&gt;set&lt;/span&gt;; }&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(204, 120, 50);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(104, 151, 187);"&gt;TreeNodeExpandMode&lt;/span&gt; ExpandMode { &lt;span style="color: rgb(204, 120, 50);"&gt;get&lt;/span&gt;; &lt;span style="color: rgb(204, 120, 50);"&gt;set&lt;/span&gt;; }&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Now use that class in your web service method instead of RadTreeNodeData. Here is how the output looks like now (total size is 500 bytes):   &lt;br /&gt;
&lt;a href="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-PerformanceTipUseWebServiceLoadOnDemandw_A6B5-image_10.sflb"&gt;&lt;img height="165" border="0" width="1028" style="border: 0px none ;" alt="image" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-PerformanceTipUseWebServiceLoadOnDemandw_A6B5-image_thumb_4.sflb" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;As you can see only the relevant properties are transmitted back from the server. However there is still one thing bothering me - that "__type":"ProductCategories+NodeData" string does not seem to be relevant in this scenario. Fortunately the fix is quite simple - change the return type of the WebService method from RadTreeNodeData[] to IEnumerable. Here is the output after this change (total size is 310 bytes)&lt;a href="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-PerformanceTipUseWebServiceLoadOnDemandw_A6B5-image_12.sflb"&gt;&lt;img height="152" border="0" width="1028" style="border: 0px none ;" alt="image" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-PerformanceTipUseWebServiceLoadOnDemandw_A6B5-image_thumb_5.sflb" /&gt;&lt;/a&gt; Not bad! If you don't plan to use server-side postback events (such as NodeDrop and NodeClick) you can improve the total performance even more by setting the &lt;strong&gt;PersistLoadOnDemandNodes&lt;/strong&gt; property to &lt;strong&gt;false&lt;/strong&gt;. By default this property is set to &lt;strong&gt;true&lt;/strong&gt; which means that RadTreeView logs (in JSON format) all nodes created on demand so they are later available after postback (required for server-side events). However this operation may become time consuming in case there are lots of load on demand nodes. If you don't need postback events just set that property to false to enable logging and persistence. Even if you need postback events you can "fake" them using RadAjaxManager. You can check the attached example for a sample implementation.    &lt;/p&gt;
&lt;p&gt;You may wonder why on earth our web-service example is so inefficient. The answer is easy - for simplicity. The RadTreeNodeData class is provided so the user can instantly start development. Optimizing the performance can be done at a later stage. Nevertheless a new example will be added in our online examples utilizing all of the aforementioned optimizations. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.telerik.com/demos/TreeViewWebService/"&gt;Live Demo&lt;/a&gt; | &lt;a href="http://www.telerik.com/demos/TreeViewWebService/TreeViewWebService.zip"&gt;Download&lt;/a&gt;&lt;/p&gt;
</description>
      <link>http://blogs.telerik.com/AtanasKorchev/Posts/08-08-06/Performance_Tip_Use_Web_Service_Load_On_Demand_with_RadTreeView.aspx</link>
      <author>Atanas Korchev</author>
      <comments>http://blogs.telerik.com/AtanasKorchev/Posts/08-08-06/Performance_Tip_Use_Web_Service_Load_On_Demand_with_RadTreeView.aspx</comments>
      <guid isPermaLink="false">5c0a9357-40ef-4312-9990-397986c6619a</guid>
      <pubDate>Wed, 06 Aug 2008 09:49:13 GMT</pubDate>
    </item>
    <item>
      <title>RadControls and ASP.NET Dynamic Data - Minor Update</title>
      <description>&lt;p&gt;We have just published a new update of our Dynamic Data bits. We fixed a bug which could cause possible duplication of items in RadComboBox (in the ForeignKey editor). The zip also includes the latest official release of RadControls for ASP.NET Ajax. You can download the bits from &lt;a href="http://www.telerik.com/download/Telerik.DynamicData_2008_2_723.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;
</description>
      <link>http://blogs.telerik.com/AtanasKorchev/Posts/08-07-31/RadControls_and_ASP_NET_Dynamic_Data_-_Minor_Update.aspx</link>
      <author>Atanas Korchev</author>
      <comments>http://blogs.telerik.com/AtanasKorchev/Posts/08-07-31/RadControls_and_ASP_NET_Dynamic_Data_-_Minor_Update.aspx</comments>
      <guid isPermaLink="false">f0ce3230-ce26-4812-8deb-a215ee38afdf</guid>
      <pubDate>Thu, 31 Jul 2008 07:02:06 GMT</pubDate>
    </item>
    <item>
      <title>RadControls and ASP.NET Ajax 4.0 Preview</title>
      <description>&lt;p&gt;Two days ago &lt;a href="http://weblogs.asp.net/bleroy"&gt;Bertrand Le Roy&lt;/a&gt; &lt;a href="http://weblogs.asp.net/bleroy/archive/2008/07/21/asp-net-ajax-4-0-codeplex-preview-1-available.aspx"&gt;announced&lt;/a&gt; the first preview of ASP.NET Ajax 4.0. If you haven't read its roadmap you can check it out &lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=14924"&gt;here&lt;/a&gt;. Lots of cool stuff is coming out - client-side templates, bindings, fluent client-side API (similar to jQuery) and more.&lt;/p&gt;
&lt;p&gt;Things are a bit hectic here because of the Q2 2008 release. Nevertheless &lt;a href="http://blogs.telerik.com/VladimirEnchev/"&gt;Vlad&lt;/a&gt; and I managed to prepare two demo pages demonstrating how to use the client-side templates introduced in the ASP.NET Ajax preview with &lt;a href="http://www.telerik.com/products/aspnet-prometheus/controls/grid/overview.aspx"&gt;RadGrid&lt;/a&gt; and &lt;a href="http://www.telerik.com/products/aspnet-prometheus/controls/treeview/overview.aspx"&gt;RadTreeView&lt;/a&gt; (yes it was that easy). Both controls are bound to web services and the client-side templates are used to visually customize the look and feel of the data. Here are the steps I took to build the RadTreeView demo:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;I registered the MicrosoftAjaxTemplates.js in the ScriptManager:      &lt;br /&gt;
    &lt;div style="border: 1px solid rgb(127, 157, 185); overflow: auto; background-color: white; line-height: 100% ! important; font-family: courier new; font-size: 11px;"&gt;
    &lt;table cellspacing="0" cellpadding="0" style="border-width: 0px; border-bottom: 0px solid rgb(238, 238, 238); margin: 2px 0px; width: 99%; border-collapse: collapse; background-color: rgb(255, 255, 255);"&gt;
        &lt;col style="border-bottom: 1px solid rgb(247, 247, 247); font-family: courier new; font-size: 11px; padding-left: 10px; white-space: nowrap;" /&gt;
        &lt;tbody&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;span style="font-size: 11px;"&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;asp:ScriptManager&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"ScriptManager1"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;Scripts&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;asp:ScriptReference&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;Path&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"~/MicrosoftAjaxTemplates.js"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;Scripts&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;asp:ScriptManager&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;Configured a RadTreeView instance to consume a web service:      &lt;br /&gt;
    &lt;div style="border: 1px solid rgb(127, 157, 185); overflow: auto; background-color: white; line-height: 100% ! important; font-family: courier new; font-size: 11px;"&gt;
    &lt;table cellspacing="0" cellpadding="0" style="border-width: 0px; border-bottom: 0px solid rgb(238, 238, 238); margin: 2px 0px; width: 99%; border-collapse: collapse; background-color: rgb(255, 255, 255);"&gt;
        &lt;col style="border-bottom: 1px solid rgb(247, 247, 247); font-family: courier new; font-size: 11px; padding-left: 10px; white-space: nowrap;" /&gt;
        &lt;tbody&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;span style="font-size: 11px;"&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;telerik:RadTreeView&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"server"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"RadTreeView1"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;OnClientNodeDataBound&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"onNodeDataBound"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;WebServiceSettings&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;Path&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"WebService.asmx"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;Method&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"GetProducts"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;Nodes&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;telerik:RadTreeNode&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;Text&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"Beverages"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;ExpandMode&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"WebService"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;telerik:RadTreeNode&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;telerik:RadTreeNode&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;Text&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"Condiments"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;ExpandMode&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"WebService"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;telerik:RadTreeNode&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;Nodes&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;telerik:RadTreeView&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;Added a LinqToSql class and dropped the Categories and Products tables (can you guess the database?) in the .dbml &lt;/li&gt;
    &lt;li&gt;Wrote the implementation of the GetProducts web service method which is used to populate RadTreeView:      &lt;br /&gt;
    &lt;div style="border: 1px solid rgb(127, 157, 185); overflow: auto; background-color: white; line-height: 100% ! important; font-family: courier new; font-size: 11px;"&gt;
    &lt;table cellspacing="0" cellpadding="0" style="border-width: 0px; border-bottom: 0px solid rgb(238, 238, 238); margin: 2px 0px; width: 99%; border-collapse: collapse; background-color: rgb(255, 255, 255);"&gt;
        &lt;col style="border-bottom: 1px solid rgb(247, 247, 247); font-family: courier new; font-size: 11px; padding-left: 10px; white-space: nowrap;" /&gt;
        &lt;tbody&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[WebMethod]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;IList&amp;lt;Product&amp;gt;&amp;nbsp;GetProducts(RadTreeNodeData&amp;nbsp;node)&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NorthwindDataContext&amp;nbsp;db&amp;nbsp;=&amp;nbsp;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;NorthwindDataContext();&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;products&amp;nbsp;=&amp;nbsp;from&amp;nbsp;p&amp;nbsp;&lt;span style="color: blue;"&gt;in&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;db.Products&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;where&amp;nbsp;p.Category.CategoryName&amp;nbsp;==&amp;nbsp;node.Text&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select&amp;nbsp;p&amp;nbsp;;&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;return&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;products.ToList();&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;When I ran the web site and ended up with an exception upon expanding a node: "A circular reference was detected while serializing an object of type Product". Silly me - the Product class had a Category property which in turn had a collection of Product objects. The fix was easy - set the "Child Property" of the Category_Product association to &lt;strong&gt;false&lt;/strong&gt;. Everything was up and running.&lt;/li&gt;
    &lt;li&gt;I added a client-side template      &lt;br /&gt;
    &lt;p&gt;&lt;em&gt;
    &lt;div style="border: 1px solid rgb(127, 157, 185); overflow: auto; background-color: white; line-height: 100% ! important; font-family: courier new; font-size: 11px;"&gt;
    &lt;table cellspacing="0" cellpadding="0" style="border-width: 0px; border-bottom: 0px solid rgb(238, 238, 238); margin: 2px 0px; width: 99%; border-collapse: collapse; background-color: rgb(255, 255, 255);"&gt;
        &lt;col style="border-bottom: 1px solid rgb(247, 247, 247); font-family: courier new; font-size: 11px; padding-left: 10px; white-space: nowrap;" /&gt;
        &lt;tbody&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;span style="font-size: 11px;"&gt;&amp;lt;div&amp;nbsp;id=&lt;/span&gt;&lt;span style="color: blue;"&gt;"myTemplate"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;class&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"sys-template"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;table&amp;gt;&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;tr&amp;gt;&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;td&amp;gt;&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{{&amp;nbsp;ProductName&amp;nbsp;}}&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/td&amp;gt;&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;td&amp;gt;&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{{&amp;nbsp;UnitPrice&amp;nbsp;}}&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/td&amp;gt;&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/tr&amp;gt;&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/table&amp;gt;&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;lt;/div&amp;gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;/div&gt;
    &lt;br /&gt;
    The "sys-template" CSS class only hides the template (display:none)&lt;/em&gt;&lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;The final step was to consume the OnClientNodeDataBound event (which is a brand new client-side event occurring when a node is created during web-service load on demand) and instantiate the template inside the node's text HTML element:      &lt;br /&gt;
    &lt;div style="border: 1px solid rgb(127, 157, 185); overflow: auto; background-color: white; line-height: 100% ! important; font-family: courier new; font-size: 11px;"&gt;
    &lt;table cellspacing="0" cellpadding="0" style="border-width: 0px; border-bottom: 0px solid rgb(238, 238, 238); margin: 2px 0px; width: 99%; border-collapse: collapse; background-color: rgb(255, 255, 255);"&gt;
        &lt;col style="border-bottom: 1px solid rgb(247, 247, 247); font-family: courier new; font-size: 11px; padding-left: 10px; white-space: nowrap;" /&gt;
        &lt;tbody&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;span style="font-size: 11px;"&gt;&amp;lt;script&amp;nbsp;type=&lt;/span&gt;&lt;span style="color: blue;"&gt;"text/javascript"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;function&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;onNodeDataBound(sender,&amp;nbsp;args)&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;var&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;node&amp;nbsp;=&amp;nbsp;args.get_node();&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;var&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;dataItem&amp;nbsp;=&amp;nbsp;args.get_dataItem();&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;var&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;template&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;Sys.Preview.UI.Template.getTemplate($get(&lt;/span&gt;&lt;span style="color: blue;"&gt;"myTemplate"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;));&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;template.createInstance(node.get_textElement(),&amp;nbsp;dataItem);&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&amp;lt;/script&amp;gt;&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;/div&gt;
    &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Using the ASP.NET Ajax client-side templates is absolutely intuitive and painless! I can't wait to see the next refresh of ASP.NET Ajax 4.0.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://74.86.36.220/RadControlsAspNetAjax4/GridAjaxTemplates.aspx"&gt;Live Demo (RadGrid)&lt;/a&gt; | &lt;a href="http://74.86.36.220/RadControlsAspNetAjax4/TreeViewAjaxTemplates.aspx"&gt;Live Demo (RadTreeView)&lt;/a&gt; | &lt;a href="http://74.86.36.220/RadControlsAspNetAjax4/RadControlsAspNetAjax4.zip"&gt;Download&lt;/a&gt;&lt;/p&gt;
</description>
      <link>http://blogs.telerik.com/AtanasKorchev/Posts/08-07-23/RadControls_and_ASP_NET_Ajax_4_0_Preview.aspx</link>
      <author>Atanas Korchev</author>
      <comments>http://blogs.telerik.com/AtanasKorchev/Posts/08-07-23/RadControls_and_ASP_NET_Ajax_4_0_Preview.aspx</comments>
      <guid isPermaLink="false">06dd7c1f-14df-4ac2-9a94-93b3112ed39e</guid>
      <pubDate>Wed, 23 Jul 2008 08:37:56 GMT</pubDate>
    </item>
    <item>
      <title>Web Resources demystified: Part 3 (Troubleshooting)</title>
      <description>&lt;p&gt;In this post I will show you how to troubleshoot Web Resource related problems and how to deal with them.&lt;/p&gt;
&lt;p&gt;If you are using an ASP.NET server control with rich client-side behavior it is likely built to utilize web resources. Sometimes your page loads and that rich server side control does not work at all - the tree view does not expand, the grid cannot sort etc. Most of the times this is because the JavaScript files of those controls have failed to load. If your browser is configured to prompt on JavaScript errors you may see the following error messages:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;"RadTreeView is undefined" if you are using RadControls for ASP.NET (Classic) &lt;/li&gt;
    &lt;li&gt;"Sys is undefined" or "Telerik is undefined" if you are using RadControls for ASP.NET Ajax (former "Prometheus") &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Receiving one of those messages indicates that there is a Web Resource related issue. The next step is to find out what exactly is causing that error message.&lt;/p&gt;
&lt;h3&gt;Manually requesting the web resource handler&lt;/h3&gt;
&lt;p&gt;The fastest way would be to view the rendered output of your page and get the URL of the offending script tag. Here is a short demo with RadTreeView Classic:    &lt;/p&gt;
&lt;div style="border: 1px solid rgb(127, 157, 185); overflow: auto; background-color: white; line-height: 100% ! important; font-family: courier new; font-size: 11px;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="border-width: 0px; border-bottom: 0px solid rgb(238, 238, 238); margin: 2px 0px; width: 99%; border-collapse: collapse; background-color: rgb(255, 255, 255);"&gt;
    &lt;col style="border-bottom: 1px solid rgb(247, 247, 247); font-family: courier new; font-size: 11px; padding-left: 10px; white-space: nowrap;" /&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size: 11px;"&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;div&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;id&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"RadTreeView1_wrapper"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: green;"&gt;&amp;lt;!--&amp;nbsp;6.3.5&amp;nbsp;--&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-weight: bold; color: black;"&gt;script&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"text/javascript"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;src&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"/Sample/WebResource.axd?d=mOXVXvUPV2JWSrl55DXbLd4CU3OqV82yycNo3oZC9Qn3B05GrDVSd8t21hVYrCq41DKrZevSapn__c8UQPRmtdYqo9Oc7wmveT4PyIINoBOcBUJOfqTubx1YzP6v6wYp0&amp;amp;amp;t=633437882200000000"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;script&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;span style="font-family: conso;"&gt;&lt;br /&gt;
&lt;/span&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Then paste that URL in your browser's address bar (after the domain and folder of course). Normally the web server should serve back the content of that web resource. However in case of a problem with the web resource HTTP handler you would see an error page saying that the server returned HTTP error code 404 (not found) or 500 (server error). &lt;/p&gt;
&lt;h3&gt;Using web development tools to request the web resource handler&lt;/h3&gt;
&lt;p&gt;Another useful technique is to use an HTTP traffic sniffer tool - &lt;a href="http://www.fiddlertool.com/fiddler/"&gt;Fiddler&lt;/a&gt; for Internet Explorer or &lt;a href="http://www.getfirebug.com"&gt;FireBug&lt;/a&gt; for FireFox. Here are two screenshots showing a failed request to a web resource file:&lt;/p&gt;
&lt;p&gt;Fiddler&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-WebResourcesdemystifiedPart3_CAC2-image_6.sflb"&gt;&lt;img height="350" border="0" width="644" style="border: 0px none ;" alt="image" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-WebResourcesdemystifiedPart3_CAC2-image_thumb_2.sflb" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;FireBug   &lt;br /&gt;
&lt;a href="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-WebResourcesdemystifiedPart3_CAC2-image_8.sflb"&gt;&lt;img height="155" border="0" width="644" style="border: 0px none ;" alt="image" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-WebResourcesdemystifiedPart3_CAC2-image_thumb_3.sflb" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h3&gt;Dealing with the 404 error code (the requested URL was not found)&lt;/h3&gt;
&lt;p&gt;Please check the following:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Check in the IIS management console that the .axd extension (the default HTTP handler extension) is allowed:     &lt;br /&gt;
    &lt;a href="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-WebResourcesdemystifiedPart3_CAC2-image_2.sflb"&gt;&lt;img height="463" border="0" width="414" style="border: 0px none ;" alt="image" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-WebResourcesdemystifiedPart3_CAC2-image_thumb.sflb" /&gt;&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;Also check if the "Verify if file exists" checkbox is &lt;strong&gt;unchecked&lt;/strong&gt;. This screen appears after you click the "Edit" button appearing in the previous screenshot:      &lt;br /&gt;
    &lt;br /&gt;
    &lt;a href="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-WebResourcesdemystifiedPart3_CAC2-image_4.sflb"&gt;&lt;img height="258" border="0" width="437" style="border: 0px none ;" alt="image" src="http://blogs.telerik.com/Libraries/MetaBlog/WindowsLiveWriter-WebResourcesdemystifiedPart3_CAC2-image_thumb_1.sflb" /&gt;&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;If you are using RadControls for ASP.NET Ajax check if the "ScriptResource.axd" HTTP handler is correctly registered in your web.config. Look for the following statement:     &lt;br /&gt;
    &lt;br /&gt;
    &lt;strong&gt;ASP.NET 2.0:       &lt;/strong&gt;&lt;br /&gt;
    &lt;div style="border: 1px solid rgb(127, 157, 185); overflow: auto; background-color: white; line-height: 100% ! important; font-family: courier new; font-size: 11px;"&gt;
    &lt;table cellspacing="0" cellpadding="0" style="border-width: 0px; border-bottom: 0px solid rgb(238, 238, 238); margin: 2px 0px; width: 99%; border-collapse: collapse; background-color: rgb(255, 255, 255);"&gt;
        &lt;col style="border-bottom: 1px solid rgb(247, 247, 247); font-family: courier new; font-size: 11px; padding-left: 10px; white-space: nowrap;" /&gt;
        &lt;tbody&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;add&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;verb&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"GET,HEAD"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;path&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"ScriptResource.axd"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt; &lt;br /&gt;
                &lt;/span&gt;&lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"System.Web.Handlers.ScriptResourceHandler,&amp;nbsp;System.Web.Extensions,&amp;nbsp;Version=1.0.61025.0,&amp;nbsp;Culture=neutral,&amp;nbsp;PublicKeyToken=31bf3856ad364e35"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt; &lt;br /&gt;
                &lt;/span&gt;&lt;span style="color: red;"&gt;validate&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"false"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;/&amp;gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;/div&gt;
    &lt;br /&gt;
    &lt;strong&gt;ASP.NET 3.5&lt;/strong&gt;&lt;/li&gt;
    &lt;p&gt;&lt;span style="font-family: consolas;"&gt;
    &lt;div style="border: 1px solid rgb(127, 157, 185); overflow: auto; background-color: white; line-height: 100% ! important; font-family: courier new; font-size: 11px;"&gt;
    &lt;span&gt;    &lt;span&gt;
    &lt;table cellspacing="0" cellpadding="0" style="border-width: 0px; border-bottom: 0px solid rgb(238, 238, 238); margin: 2px 0px; width: 99%; border-collapse: collapse; background-color: rgb(255, 255, 255);"&gt;
        &lt;col style="border-bottom: 1px solid rgb(247, 247, 247); font-family: courier new; font-size: 11px; padding-left: 10px; white-space: nowrap;" /&gt;
        &lt;tbody&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;add&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;path&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"ScriptResource.axd"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;verb&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"GET,HEAD"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;&lt;br /&gt;
                type&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"System.Web.Handlers.ScriptResourceHandler,&amp;nbsp;System.Web.Extensions,&amp;nbsp;Version=3.5.0.0,&amp;nbsp;Culture=neutral,&amp;nbsp;PublicKeyToken=31BF3856AD364E35"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;&lt;br /&gt;
                validate&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"false"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;span&gt;    &lt;span&gt;    &lt;br /&gt;
    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;IIS7&lt;/strong&gt; &lt;strong&gt;     Integrated Mode&lt;/strong&gt;&lt;br /&gt;
    &lt;br /&gt;
    The following statement should be present in the &lt;strong&gt;&amp;lt;handlers&amp;gt;&lt;/strong&gt; section instead of &amp;lt;httpHandlers&amp;gt;:      &lt;/p&gt;
    &lt;div style="border: 1px solid rgb(127, 157, 185); overflow: auto; background-color: white; line-height: 100% ! important; font-family: courier new; font-size: 11px;"&gt;
    &lt;table cellspacing="0" cellpadding="0" style="border-width: 0px; border-bottom: 0px solid rgb(238, 238, 238); margin: 2px 0px; width: 99%; border-collapse: collapse; background-color: rgb(255, 255, 255);"&gt;
        &lt;col style="border-bottom: 1px solid rgb(247, 247, 247); font-family: courier new; font-size: 11px; padding-left: 10px; white-space: nowrap;" /&gt;
        &lt;tbody&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;span style="font-size: 11px;"&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;handlers&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;add&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;name&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"ScriptResource"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;preCondition&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"integratedMode"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;span style="color: red;"&gt;verb&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"GET,HEAD"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;path&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"ScriptResource.axd"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"System.Web.Handlers.ScriptResourceHandler,&amp;nbsp;System.Web.Extensions,&amp;nbsp;Version=3.5.0.0,&amp;nbsp;Culture=neutral,&amp;nbsp;PublicKeyToken=31BF3856AD364E35"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;/div&gt;
    &lt;br /&gt;
    &lt;em&gt;Note: if you are using .NET 2.0 the version of the System.Web.Extensions assembly should be "1.0.61025.0"&lt;strong&gt;.&lt;/strong&gt; If you are using .NET 3.5 the version should be "3.5.0.0". Always make sure you are referring to the right assembly version.&lt;/em&gt;
    &lt;p&gt;&lt;/p&gt;
    &lt;li&gt;If you are using RadControls for ASP.NET Ajax and RadScriptManager check if the Telerik.Web.UI.WebResource.axd HTTP handler is correctly registered in your web.config:     &lt;br /&gt;
    &lt;br /&gt;
    &lt;strong&gt;ASP.NET 2.0:       &lt;br /&gt;
    &lt;/strong&gt;
    &lt;div style="border: 1px solid rgb(127, 157, 185); overflow: auto; background-color: white; line-height: 100% ! important; font-family: courier new; font-size: 11px;"&gt;
    &lt;table cellspacing="0" cellpadding="0" style="border-width: 0px; border-bottom: 0px solid rgb(238, 238, 238); margin: 2px 0px; width: 99%; border-collapse: collapse; background-color: rgb(255, 255, 255);"&gt;
        &lt;col style="border-bottom: 1px solid rgb(247, 247, 247); font-family: courier new; font-size: 11px; padding-left: 10px; white-space: nowrap;" /&gt;
        &lt;tbody&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;add&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;path&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"Telerik.Web.UI.WebResource.axd"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;verb&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"*"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt; &lt;br /&gt;
                &lt;/span&gt;&lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"Telerik.Web.UI.WebResource,&amp;nbsp;Telerik.Web.UI,&amp;nbsp;Version=2008.1.619.20,&amp;nbsp;Culture=neutral,&amp;nbsp;PublicKeyToken=121fae78165ba3d4"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;&lt;br /&gt;
                validate&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"false"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;/div&gt;
    &lt;br /&gt;
    &lt;strong&gt;ASP.NET 3.5&lt;br /&gt;
    &lt;div style="border: 1px solid rgb(127, 157, 185); overflow: auto; background-color: white; line-height: 100% ! important; font-family: courier new; font-size: 11px;"&gt;
    &lt;table cellspacing="0" cellpadding="0" style="border-width: 0px; border-bottom: 0px solid rgb(238, 238, 238); margin: 2px 0px; width: 99%; border-collapse: collapse; background-color: rgb(255, 255, 255);"&gt;
        &lt;col style="border-bottom: 1px solid rgb(247, 247, 247); font-family: courier new; font-size: 11px; padding-left: 10px; white-space: nowrap;" /&gt;
        &lt;tbody&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;add&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;path&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"Telerik.Web.UI.WebResource.axd"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;verb&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"*"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt; &lt;br /&gt;
                &lt;/span&gt;&lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"Telerik.Web.UI.WebResource,&amp;nbsp;Telerik.Web.UI,&amp;nbsp;Version=2008.1.619.35,&amp;nbsp;Culture=neutral,&amp;nbsp;PublicKeyToken=121fae78165ba3d4"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;&lt;br /&gt;
                validate&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"false"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;/div&gt;
    &lt;br /&gt;
    &lt;/strong&gt;&lt;/li&gt;
    &lt;p&gt;&lt;strong&gt;IIS7&lt;/strong&gt;      &lt;br /&gt;
    &lt;br /&gt;
    The following statement should be present in the &lt;strong&gt;&amp;lt;handlers&amp;gt;&lt;/strong&gt; section instead of &amp;lt;httpHandlers&amp;gt;:      &lt;/p&gt;
    &lt;div style="border: 1px solid rgb(127, 157, 185); overflow: auto; background-color: white; line-height: 100% ! important; font-family: courier new; font-size: 11px;"&gt;
    &lt;table cellspacing="0" cellpadding="0" style="border-width: 0px; border-bottom: 0px solid rgb(238, 238, 238); margin: 2px 0px; width: 99%; border-collapse: collapse; background-color: rgb(255, 255, 255);"&gt;
        &lt;col style="border-bottom: 1px solid rgb(247, 247, 247); font-family: courier new; font-size: 11px; padding-left: 10px; white-space: nowrap;" /&gt;
        &lt;tbody&gt;
            &lt;tr&gt;
                &lt;td&gt;&lt;span style="font-size: 11px;"&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;handlers&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;add&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;name&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"Telerik.Web.UI.WebResource"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&amp;nbsp;&lt;span style="color: red;"&gt;path&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"Telerik.Web.UI.WebResource.axd"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red;"&gt;verb&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"*"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td style="background-color: rgb(247, 247, 247);"&gt;&lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: blue;"&gt;"Telerik.Web.UI.WebResource,&amp;nbsp;Telerik.Web.UI,&amp;nbsp;Version=2008.1.619.35,&amp;nbsp;Culture=neutral,&amp;nbsp;PublicKeyToken=121fae78165ba3d4"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;/&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;&amp;nbsp;&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;/div&gt;
    &lt;br /&gt;
    &lt;em&gt;Note: The version in the HTTP handler registration statement will vary depending on the release date and .NET runtime (2.0 or 3.5). Always make sure you are referring to the right assembly version.&lt;/em&gt;
    &lt;p&gt;&lt;/p&gt;
&lt;/ol&gt;
&lt;p&gt;   &lt;/p&gt;
&lt;h3&gt;Dealing with the 500 error code (server error) &lt;/h3&gt;
&lt;p&gt;You should check the detailed error message. There are two common cases:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;"Padding is invalid and cannot be removed"     &lt;br /&gt;
    The problem is likely to be related with the machine key. &lt;a href="http://blogs.msdn.com/paraga/archive/2006/07/03/655081.aspx"&gt;This&lt;/a&gt; blog post delves into why this error occurs. &lt;a href="http://msdn2.microsoft.com/en-us/library/ms998288.aspx"&gt;This&lt;/a&gt; MSDN article describes how to create a custom machine key.&lt;strong&gt;&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;"Specified argument was out of the range of valid values. Parameter name: utcDate"     &lt;br /&gt;
    The assembly containing the embedded resources is probably &lt;a href="http://blogs.telerik.com/AtanasKorchev/Posts/07-07-05/ScriptResource_axd_and_and_assemblies_built_in_the_future.aspx"&gt;built in the future&lt;/a&gt; (its last modified time is later than the current time). This can occur when deploying in a different time zone. The solution is simple - run the following command line statement (the commas at the end are important!):      &lt;br /&gt;
    copy /b &amp;lt;path to assembly which is built in the future&amp;gt;,,&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;   &lt;br /&gt;
I hope this helps,&lt;/p&gt;
&lt;p&gt;Atanas&lt;/p&gt;
</description>
      <link>http://blogs.telerik.com/AtanasKorchev/Posts/08-07-18/Web_Resources_demystified_Part_3_Troubleshooting.aspx</link>
      <author>Atanas Korchev</author>
      <comments>http://blogs.telerik.com/AtanasKorchev/Posts/08-07-18/Web_Resources_demystified_Part_3_Troubleshooting.aspx</comments>
      <guid isPermaLink="false">70e94604-096d-45de-9599-356f9b38730f</guid>
      <pubDate>Fri, 18 Jul 2008 07:28:41 GMT</pubDate>
    </item>
    <item>
      <title>The difference between ID, ClientID and UniqueID</title>
      <description>I this post I will try to explain the difference between those three commonly used properties. Each property is described in a separate section. Attached you can find a sample web site as well as two screenshots visually depicting the difference between the ID, ClientID and UniqueID properties.&lt;br /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;ID&lt;/h3&gt;
The &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.control.id.aspx"&gt;ID&lt;/a&gt; property is used to assign an identifier to an ASP.NET server control which can be later used to access that control. You can use either the field generated in the codebehind or pass the value of the ID property to the &lt;a href="http://msdn.microsoft.com/en-us/library/486wc64h.aspx"&gt;FindControl&lt;/a&gt; method. There is a catch though - the ID property is unique only within the current &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.control.namingcontainer.aspx"&gt;NamingContainer&lt;/a&gt; (page, user control, control with item template etc). If a server control is defined inside the item template of some other control (Repeater, DataGrid) or user control, its ID property is no longer unique. For example, you can add some user control twice in the same page. Any child controls of that user control will have the same ID.&amp;nbsp; Also the ASP.NET page parser won't generate a codebehind field corresponding to the control ID in case the control is defined inside a template. This is the reason you cannot easily find a specific control when it is part of a template - you need to use the FindControl method of its container control instead. As a side note, setting the ID property is not mandatory. If you don't set it the ASP.NET Runtime will generate one for you in the form of "_ctl0", "_ctl1", etc.
&lt;h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
UniqueID&lt;/h3&gt;
&lt;p&gt;The &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.control.uniqueid.aspx"&gt;UniqueID&lt;/a&gt; property is the page-wide unique identifier of an ASP.NET server control. Its uniqueness is guaranteed by prefixing the ID of a server control with the ID of its NamingContainer. If the NamingContainer is the Page the UniqueID will remain the same as the ID. &lt;/p&gt;
&lt;p&gt;For example if a Label with ID="Label1" is defined in a user control with ID = "UserControl1" the UniqueID of the Label will be "UserControl1$Label1". Adding another instance of the same user control (with ID = "UserControl2") will make the UniqueID of its child label to be "UserControl2$Label1".&lt;br /&gt;
&lt;br /&gt;
The UniqueID property is also used to provide value for the HTML &lt;a href="http://msdn.microsoft.com/en-us/library/ms534184%28VS.85%29.aspx"&gt;"name"&lt;/a&gt; attribute of input fields (checkboxes, dropdown lists, and hidden fields). UniqueID also plays major role in postbacks. The UniqueID property of a server control, which supports postbacks, provides data for the __EVENTTARGET hidden field. The ASP.NET Runtime then uses the __EVENTTARGET field to find the control which triggered the postback and then calls its &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.ipostbackeventhandler.raisepostbackevent.aspx"&gt;RaisePostBackEvent&lt;/a&gt; method. Here is some code which illustrates the idea:&lt;br /&gt;
&lt;br /&gt;
&lt;code style="font-size: 11px;"&gt;IPostBackEventHandler postBackInitiator =&lt;br /&gt;
&lt;br /&gt;
Page.FindControl(Request.Form["__EVENTTARGET") As IPostBackEventHandler;&lt;br /&gt;
&lt;br /&gt;
if (postBackInitiator != null)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; postBackInitiator.RaisePostBackEvent(Request.Form["__EVENTARGUMENT"]);&lt;br /&gt;
&lt;/code&gt;
&lt;br /&gt;
You can use the UniqueID property to find any control no matter how deep it is nested in the control hierarchy. Just pass its value to the FindControl method of the Page.&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;ClientID&lt;/h3&gt;
The &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientid.aspx"&gt;ClientID&lt;/a&gt; property is quite similar to the UniqueID. It is generated following the same rules (the ID of the control prefixed by the ID of its NamingContainer). The only difference is the separator - for the ClientID it is the "_" (underscore) symbol.&lt;br /&gt;
The ClientID property is globally unique among all controls defined in an ASP.NET page. You may ask why we need two different globally unique properties. The answer is that ClientID serves a different purpose than UniqueID. In most server controls the ClientID property provides the value for the HTML "&lt;a href="http://msdn.microsoft.com/en-us/library/ms533880%28VS.85%29.aspx"&gt;id&lt;/a&gt;" attribute of the HTML tag of that server control. For example this:&lt;br /&gt;
&lt;br /&gt;
&lt;code style="font-size: 11px;"&gt;&amp;lt;asp:Label &lt;span style="background: yellow none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;ID="Label1"&lt;/span&gt; Text="Label" /&amp;gt;
&lt;/code&gt;
&lt;p&gt;will render as this:&lt;/p&gt;
&lt;code style="font-size: 11px;"&gt;&amp;lt;span &lt;span style="background: yellow none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;id="Label1"&lt;/span&gt;&amp;gt;Label&amp;lt;/span&amp;gt;&lt;/code&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
That's why you often use the following JavaScript statement to access the DOM element corresponding to some ASP.NET server control:&lt;br /&gt;
&lt;br /&gt;
&lt;code style="font-size: 11px;"&gt;
var label = document.getElementById("&amp;lt;%= Label1.ClientID%&amp;gt;");&lt;br /&gt;
&lt;/code&gt;
&lt;br /&gt;
which in turn renders as:&lt;br /&gt;
&lt;br /&gt;
&lt;code style="font-size: 11px;"&gt;
var label = document.getElementById("Label1");
&lt;/code&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
It is worth mentioning that the values of the ID, UniqueID and ClientID will be the same if the control is defined in the master page (or the page). This however can often lead to unexpected errors. If the ID of the control is hardcoded inside the JavaScript statement (e.g. "Label1") this code will only work provided the control is defined in the Page or master page. Moving the control and the JavaScript code into a userc control with ID "UserControl1" will fail at runtime because the control will now render as:
&lt;p&gt;
&lt;code style="font-size: 11px;"&gt;
&amp;lt;span &lt;span style="background: yellow none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;id="UserControl1_Label1"&lt;/span&gt;&amp;gt;Label&amp;lt;/span&amp;gt;
&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;That's why you should prefer using the &lt;span&gt;&lt;/span&gt;"&amp;lt;%=
Label1.ClientID%&amp;gt;" syntax to get the client-side id of server controls.&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;Additionaly the ClientID is used in ASP.NET Ajax as the unique
identifier of client-side controls. Thus the following JavaScript statement is
commonly used:
&lt;/p&gt;
&lt;p&gt;
&lt;code style="font-size: 11px;"&gt;
var control = $find(&lt;span style="background: yellow none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;"&amp;lt;%= MyControl1.ClientID %&amp;gt;"&lt;/span&gt;);&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;h3&gt;Example&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;times new roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;I have attached a &lt;a href="http://blogs.telerik.com/photos/storage/korchev/ID_ClientID_UniqueID.zip"&gt;sample web site&lt;/a&gt;&lt;a href="http://blogs.telerik.com/photos/storage/korchev/ID_ClientID_UniqueID.zip"&gt;&lt;/a&gt; which
demonstrates the difference between those three properties of controls defined in a page (without a master), master page, content placeholder and user control. Here are two screenshots from the output:&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;times new roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;
&lt;h3&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Normal ASPX page (without a master page):&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://blogs.telerik.com/Libraries/MetaBlog/page.sflb" /&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;times new roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;
&lt;h3&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Master page scenario:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;times new roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;img src="http://blogs.telerik.com/Libraries/MetaBlog/masterpage.sflb" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;times new roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;I hope this helps.&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code style="font-size: 11px;"&gt;
&lt;/code&gt;
&lt;/p&gt;
</description>
      <link>http://blogs.telerik.com/AtanasKorchev/Posts/08-06-06/The_difference_between_ID_ClientID_and_UniqueID.aspx</link>
      <author>Atanas Korchev</author>
      <comments>http://blogs.telerik.com/AtanasKorchev/Posts/08-06-06/The_difference_between_ID_ClientID_and_UniqueID.aspx</comments>
      <guid isPermaLink="false">8f0bde48-d3bb-429b-bd3d-b21419ef7caf</guid>
      <pubDate>Fri, 06 Jun 2008 06:50:10 GMT</pubDate>
    </item>
    <item>
      <title>RadControls for ASP.NET Ajax in SharePoint 2007 and DotNetNuke</title>
      <description>&lt;h3&gt;SharePoint&lt;/h3&gt;
&lt;p style="line-height: normal;"&gt;&lt;span&gt;We recently pulled out a sample
SharePoint 2007 (MOSS) site which shows &lt;a href="http://www.telerik.com/products/aspnet-ajax/overview.aspx"&gt;RadControls for ASP.NET Ajax&lt;/a&gt; working in SharePoint
environment. You can check it out by going to &lt;a href="http://sharepoint.telerik.com"&gt;http://sharepoint.telerik.com&lt;/a&gt;.&amp;nbsp;This
site is a SharePoint Publishing portal. We have modified the master page and
replaced the default navigation controls with &lt;a href="http://www.telerik.com/products/aspnet-ajax/controls/tabstrip/overview.aspx"&gt;RadTabStrip&lt;/a&gt; and &lt;a href="http://www.telerik.com/products/aspnet-ajax/controls/panelbar/overview.aspx"&gt;RadPanelbar&lt;/a&gt;. The
required steps are described in detail in &lt;a href="http://www.telerik.com/help/aspnet-ajax/moss-overview.html"&gt;our online documentation&lt;/a&gt;. The
&lt;a href="http://sharepoint.telerik.com/Corporate/Pages/default.aspx"&gt;Corporate section&lt;/a&gt; of the SharePoint is utilizing a different master page which incorporates
&lt;a href="http://www.telerik.com/products/aspnet-prometheus/controls/menu/overview.aspx"&gt;RadMenu&lt;/a&gt; and &lt;a href="http://www.telerik.com/products/aspnet-prometheus/controls/treeview/overview.aspx"&gt;RadTreeView&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style="line-height: normal;" class="MsoNormal"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="http://www.telerik.com/products/sharepoint/radeditor.aspx"&gt;RadEditor for MOSS&lt;/a&gt; also got a major
update - go check &lt;a href="http://blogs.telerik.com/StoyanStratev/Posts/08-06-04/Full-featured_RadEditor_for_MOSS_5_0.aspx"&gt;Stoyans's blog post&lt;/a&gt; for more info.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Also we prepared three demo pages showcasing &lt;a href="http://sharepoint.telerik.com/Products/RadControlsAjax/Pages/RadScheduler.aspx"&gt;RadScheduler&lt;/a&gt;, &lt;a href="http://sharepoint.telerik.com/Products/RadControlsAjax/Pages/RadEditorfor.aspx"&gt;RadEditor&lt;/a&gt; and &lt;a href="http://sharepoint.telerik.com/PRODUCTS/RADCONTROLSAJAX/Pages/RadGrid.aspx"&gt;RadGrid&lt;/a&gt; working seamlessly in SharePoint. The main challenge here was to get ASP.NET Ajax working in SharePoint. &lt;a href="http://sharepoint.microsoft.com/blogs/mike/Lists/Posts/Post.aspx?ID=3"&gt;This &lt;/a&gt;blog post has all the required steps outlined (installing, getting the UpdatePanel to work). Make sure you read it before using ASP.NET Ajax in your SharePoint site.&lt;/p&gt;
&lt;h3&gt;DotNetNuke&lt;/h3&gt;
&lt;h3&gt;&lt;/h3&gt;
&lt;p&gt;There is some news on the DNN front as well. We have updated our Skin Objects to use RadControls for ASP.NET Ajax. They are now available for download from the &lt;a href="http://www.telerik.com/client.net"&gt;Client.Net&lt;/a&gt;. Our RadEditor DNN content provider was updated as well. At the time being we are working on migration of the other DNN modules - PageAdmin and Events. We also plan to publish a detailed tutorial how to create a custom DNN module utilizing RadControls for ASP.NET Ajax. It will be part of our online documentation. Our sample DNN site will also get a facelift so stay tuned for more.&lt;/p&gt;
</description>
      <link>http://blogs.telerik.com/AtanasKorchev/Posts/08-06-04/RadControls_for_ASP_NET_Ajax_in_SharePoint_2007_and_DotNetNuke.aspx</link>
      <author>Atanas Korchev</author>
      <comments>http://blogs.telerik.com/AtanasKorchev/Posts/08-06-04/RadControls_for_ASP_NET_Ajax_in_SharePoint_2007_and_DotNetNuke.aspx</comments>
      <guid isPermaLink="false">2e3ce534-d405-4625-a6c8-0d2c91987c1d</guid>
      <pubDate>Wed, 04 Jun 2008 08:36:56 GMT</pubDate>
    </item>
    <item>
      <title>RadControls and ASP.NET Dynamic Data - Update</title>
      <description>We have been working for some time to integrate &lt;a href="http://www.telerik.com/products/aspnet-ajax/controls/grid/overview.aspx"&gt;RadGrid&lt;/a&gt; in the ListDetails page template. I am pleased to announce that this is now a fact. You can use a modified version of ListDetails.aspx bundled with RadGrid. See for yourself:&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://blogs.telerik.com/Photos/Storage/korchev/dynamicdata.jpg" /&gt;&lt;br /&gt;
&lt;br /&gt;
You can download the bits from &lt;a href="http://www.telerik.com/download/Telerik.DynamicData.zip"&gt;here&lt;/a&gt;. They are tested with the latest Dynamic Data bits which you can grab from &lt;a href="http://code.msdn.microsoft.com/dynamicdata"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I would like to thank &lt;a href="http://blogs.msdn.com/davidebb/"&gt;David Ebbo&lt;/a&gt; for his continuous support and help. Also a big thank you to my colleague &lt;a href="http://blogs.telerik.com/VladimirEnchev/"&gt;Vlad &lt;/a&gt;(our local RadGrid expert) who provided invaluable assistance with the technical implementation.&lt;br /&gt;
</description>
      <link>http://blogs.telerik.com/AtanasKorchev/Posts/08-05-22/RadControls_and_ASP_NET_Dynamic_Data_-_Update.aspx</link>
      <author>Atanas Korchev</author>
      <comments>http://blogs.telerik.com/AtanasKorchev/Posts/08-05-22/RadControls_and_ASP_NET_Dynamic_Data_-_Update.aspx</comments>
      <guid isPermaLink="false">4947d31e-5acf-431d-b622-fc0e33ffa009</guid>
      <pubDate>Thu, 22 May 2008 08:16:06 GMT</pubDate>
    </item>
    <item>
      <title>RadControls and ASP.NET Dynamic Data - Part Deux</title>
      <description>It seems that I've managed to mess things up in my &lt;a href="http://blogs.telerik.com/AtanasKorchev/Posts/08-04-14/RadControls_and_ASP_NET_Dynamic_Data.aspx"&gt;previous blog post&lt;/a&gt;. The sample web site and user controls work but ... they are using the December CTP release of ASP.NET Dynamic Data! Kudos to &lt;a href="http://blogs.msdn.com/scothu/default.aspx"&gt;Scott Hunter&lt;/a&gt; for spotting the problem. It seems that albeit I installed the latest Dynamic Data bits I forgot to uninstall the December CTP and Visual Studio 2008 was still using the old Web Site template. Be careful when installing the new bits - uninstall any previous releases first!&lt;br /&gt;
&lt;br /&gt;
The sample web site and field template user controls have been updated. Please download it from &lt;a href="http://blogs.telerik.com/Photos/Storage/korchev/DynamicDataWebSite048.zip"&gt;here&lt;/a&gt;. Keep in mind that the RenderHint attribute is replaced by the UIHint attribute. The semantics of using that attribute have also changed. Now you need a MetaDataType object on which you apply the UIHint attribute. Here is the modified code for the Order object:&lt;br /&gt;
&lt;div style="border: 1px solid rgb(127, 157, 185); overflow: auto; background-color: white; line-height: 100% ! important; font-family: courier new; font-size: 11px;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="border-width: 0px; border-bottom: 0px solid rgb(238, 238, 238); margin: 2px 0px; width: 99%; border-collapse: collapse; background-color: rgb(255, 255, 255);"&gt;
    &lt;col style="border-bottom: 1px solid rgb(247, 247, 247); font-family: courier new; font-size: 11px; padding-left: 10px; white-space: nowrap;" /&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size: 11px;"&gt;[MetadataType(&lt;/span&gt;&lt;span style="color: blue;"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;(OrderMetadata))]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;partial&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;class&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;Order&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;{&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;}&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;class&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;OrderMetadata&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;{&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[UIHint(&lt;span style="color: blue;"&gt;"DateTimeTelerik"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;)]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;OrderDate&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[UIHint(&lt;span style="color: blue;"&gt;"DateTimeTelerik"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;)]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;RequiredDate&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[UIHint(&lt;span style="color: blue;"&gt;"DateTimeTelerik"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;)]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;ShippedDate&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[UIHint(&lt;span style="color: blue;"&gt;"ForeignKeyTelerik"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;)]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;Customer&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[UIHint(&lt;span style="color: blue;"&gt;"ForeignKeyTelerik"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;)]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;Employee&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[UIHint(&lt;span style="color: blue;"&gt;"IntegerTelerik"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;)]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[Range(1,&amp;nbsp;3)]&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;ShipVia&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[UIHint(&lt;span style="color: blue;"&gt;"DecimalTelerik"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;)]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;Freight&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[UIHint(&lt;span style="color: blue;"&gt;"TextTelerik"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;)]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;ShipName&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[UIHint(&lt;span style="color: blue;"&gt;"TextTelerik"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;)]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;ShipAddress&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[UIHint(&lt;span style="color: blue;"&gt;"TextTelerik"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;)]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;ShipCity&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[UIHint(&lt;span style="color: blue;"&gt;"TextTelerik"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;)]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;ShipRegion&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[UIHint(&lt;span style="color: blue;"&gt;"TextTelerik"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;)]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;ShipPostalCode&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[UIHint(&lt;span style="color: blue;"&gt;"TextTelerik"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;)]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;ShipCountry&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;;&amp;nbsp;}&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;}&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
</description>
      <link>http://blogs.telerik.com/AtanasKorchev/Posts/08-04-16/RadControls_and_ASP_NET_Dynamic_Data_-_Part_Deux.aspx</link>
      <author>Atanas Korchev</author>
      <comments>http://blogs.telerik.com/AtanasKorchev/Posts/08-04-16/RadControls_and_ASP_NET_Dynamic_Data_-_Part_Deux.aspx</comments>
      <guid isPermaLink="false">4f6e0500-022a-48c2-aa29-d2bdd2c3891c</guid>
      <pubDate>Wed, 16 Apr 2008 06:29:35 GMT</pubDate>
    </item>
    <item>
      <title>RadControls and ASP.NET Dynamic Data</title>
      <description>&lt;div style="border: 1px solid rgb(150, 150, 150); padding: 10px; background: rgb(237, 237, 237) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;em&gt;Update: the sample code linked in this post is &lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;NOT&lt;/strong&gt;&lt;/span&gt; using the latest release of the ASP.NET Dynamic Data. Please check &lt;a href="http://blogs.telerik.com/AtanasKorchev/Posts/08-04-16/RadControls_and_ASP_NET_Dynamic_Data_-_Part_Deux.aspx"&gt;this&lt;/a&gt; post for updated sample and field template user controls.&lt;/em&gt;
&lt;/div&gt;
&lt;h3 style="font-weight: bold;"&gt;ASP.NET Dynamic Data&lt;/h3&gt;
I am thrilled to announce that there is a &lt;a href="http://code.msdn.microsoft.com/dynamicdata"&gt;new drop&lt;/a&gt; available for the ASP.NET Dynamic Data. You don't know what the heck that is? It is the upcoming technology from the ASP.NET team which is designed to help you build web sites faster. Go check the following links immediately:
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2008/04/10/asp-net-dynamic-data-preview-available.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2008/04/10/asp-net-dynamic-data-preview-available.aspx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://sessions.visitmix.com/?selectedSearch=T24"&gt;http://sessions.visitmix.com/?selectedSearch=T24&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://blogs.msdn.com/davidebb/archive/2008/03/06/dynamic-data-at-mix-and-upcoming-changes.aspx"&gt;http://blogs.msdn.com/davidebb/archive/2008/03/06/dynamic-data-at-mix-and-upcoming-changes.aspx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://davidebbo.members.winisp.net/screencasts/dbimage.wmv"&gt;http://davidebbo.members.winisp.net/screencasts/dbimage.wmv&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://www.hanselman.com/blog/PuttingASPNETDynamicDataIntoContext.aspx"&gt;http://www.hanselman.com/blog/PuttingASPNETDynamicDataIntoContext.aspx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style="font-weight: bold;"&gt;Points of extensibility&lt;/h3&gt;
One of the key features of ASP.NET Dynamic Data are the DynamicField and his buddy the FieldTemplateUserControl.&amp;nbsp; DynamicFields represent the field of your objects. The FieldTemplateUserControl displays and edits the corresponding DynamicField - integer, decimal, date time etc. &lt;br /&gt;
&lt;br /&gt;
Why do I need to know all that? Here is the answer - ASP.NET Dynamic Data is highly extensible. You can create custom FieldTemplate user controls - replace the built-in TextBox in Integer_Edit.ascx (used to edit integer fields) with &lt;a href="http://www.telerik.com/demos/aspnet/prometheus/Input/Examples/RadNumericTextBox/FirstLook/DefaultCS.aspx"&gt;RadNumericTextBox&lt;/a&gt;, integrate &lt;a href="http://www.telerik.com/demos/aspnet/prometheus/Calendar/Examples/Design/Sunny/DefaultCS.aspx"&gt;RadDatePicker&lt;/a&gt; to make choosing a date easier, use &lt;a href="http://www.telerik.com/demos/aspnet/prometheus/Slider/Examples/Default/DefaultCS.aspx"&gt;RadSlider&lt;/a&gt; to extend the paging mechanism etc. I have created a &lt;a href="http://blogs.telerik.com/Photos/Storage/korchev/DynamicDataWebSite.zip"&gt;sample dynamic data web site&lt;/a&gt; with custom field templates all of which use RadControls for ASP.NET Ajax. &lt;br /&gt;
How to use it:&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;Download and install the latest preview of ASP.NET Dynamic Data. Get it from &lt;a href="http://code.msdn.microsoft.com/dynamicdata"&gt;http://code.msdn.microsoft.com/dynamicdata&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Download the sample site and extract the zip file somewhere. If you need to use the field templates in your project copy all user controls from ~/App_Shared/DynamicDataFields in your dynamic data web site.&lt;/li&gt;
    &lt;li&gt;Apply the RenderHint attribute to your objects specifying the field name and editor (find an example below)&lt;/li&gt;
&lt;/ul&gt;
To see a screenshot of the final result click &lt;a href="http://blogs.telerik.com/Photos/Storage/korchev/orders.gif"&gt;here&lt;/a&gt;.
&lt;h3&gt;The RenderHint attribute&lt;/h3&gt;
Of course the sample site I have built is using the Northwind database so I will show you how to use the custom editors with the Order class. To apply the render hint attribute you first need to add a new partial class in your App_Code folder with the same name as the object you want to customize. In my case I have added a partial class named Order. Then use the RenderHint attribute to specify the field name and editor:&lt;br /&gt;
&lt;p class="MsoNormal"&gt;&lt;/p&gt;
&lt;div style="border: 1px solid rgb(127, 157, 185); overflow: auto; background-color: white; line-height: 100% ! important; font-family: courier new; font-size: 11px;"&gt;
&lt;table cellspacing="0" cellpadding="0" style="border-width: 0px; border-bottom: 0px solid rgb(238, 238, 238); margin: 2px 0px; width: 99%; border-collapse: collapse; background-color: rgb(255, 255, 255);"&gt;
    &lt;col style="border-bottom: 1px solid rgb(247, 247, 247); font-family: courier new; font-size: 11px; padding-left: 10px; white-space: nowrap;" /&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="font-size: 11px;"&gt;[RenderHint(&lt;/span&gt;&lt;span style="color: blue;"&gt;"OrderDate"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;"DateTimeTelerik"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;)]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;[RenderHint(&lt;span style="color: blue;"&gt;"Customer"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;"ForeignKeyTelerik"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;)]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;[RenderHint(&lt;span style="color: blue;"&gt;"ShipVia"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;"IntegerTelerik"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;)]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;[Range(&lt;span style="color: blue;"&gt;"ShipVia"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;,&amp;nbsp;1,&amp;nbsp;3)]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;[RenderHint(&lt;span style="color: blue;"&gt;"ShipName"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;"TextTelerik"&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;)]&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;partial&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;class&lt;/span&gt;&lt;span style="font-size: 11px;"&gt;&amp;nbsp;Order&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;{&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="background-color: rgb(247, 247, 247);"&gt;}&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&amp;nbsp;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
The RenderHint attribute is used to hint the Dynamic Data runtime which user control must be used to display and edit a specific DynamicField. Keep in mind that RenderHint works only for objects of the specified type. For example applying the RenderHint attribute for the Order will take effect only for editing and displaying the Orders table from the Northwind database. You can however easily edit the default field template controls so you don't have to apply the RenderHint attribute for every field of every object.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The sample web site provides custom FieldTemplateUserControls for editing integers, decimals, date time, text and foreign key.&amp;nbsp; GridViewPager.ascx is also modified to use RadSlider.&lt;br /&gt;
&lt;br /&gt;
In conclusion, I would like to thank &lt;a href="http://blogs.msdn.com/davidebb/"&gt;David Ebbo&lt;/a&gt; from Microsoft for holding my hand during the integration of RadControls with ASP.NET Dynamic Data. &lt;br /&gt;
&lt;br /&gt;
</description>
      <link>http://blogs.telerik.com/AtanasKorchev/Posts/08-04-14/RadControls_and_ASP_NET_Dynamic_Data.aspx</link>
      <author>Atanas Korchev</author>
      <comments>http://blogs.telerik.com/AtanasKorchev/Posts/08-04-14/RadControls_and_ASP_NET_Dynamic_Data.aspx</comments>
      <guid isPermaLink="false">23fc89ec-5dd9-40da-8851-c802c42675e3</guid>
      <pubDate>Mon, 14 Apr 2008 09:00:36 GMT</pubDate>
    </item>
    <item>
      <title> Web Resources demystified: Part 2</title>
      <description>&lt;h2 align="justify"&gt;"Why is my page sprinkled with links to webresource.axd?"&lt;/h2&gt;
&lt;div align="justify"&gt;By default RadControls (both "Classic" and "Prometheus") utilize &lt;a href="http://blogs.telerik.com/atanaskorchev/Posts/08-02-27/Web_Resources_demystified_Part_1.aspx"&gt;Web Resources&lt;/a&gt; to embed external files. By external files I mean the following:&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;JavaScript files - they contain the code implemen