<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>With Great Power comes Great Response.write("Ability") : AjaxControlToolkit</title><link>http://blogs.msdn.com/phaniraj/archive/tags/AjaxControlToolkit/default.aspx</link><description>Tags: AjaxControlToolkit</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Ajax preview 2 : Declarative Instantiation of AjaxControlToolkit Controls</title><link>http://blogs.msdn.com/phaniraj/archive/2008/09/12/ajax-preview-2-declarative-instantiation-of-ajaxcontroltoolkit-controls.aspx</link><pubDate>Fri, 12 Sep 2008 09:56:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8945964</guid><dc:creator>PhaniRajuYN</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/phaniraj/comments/8945964.aspx</comments><wfw:commentRss>http://blogs.msdn.com/phaniraj/commentrss.aspx?PostID=8945964</wfw:commentRss><description>&lt;p&gt;Today ,we will talk about using the Declarative Syntax to instantiate certain AjaxControlToolkit Behaviors .    &lt;br /&gt;    &lt;br /&gt;Step 0: Figure out which are the script files needed for the Behavior to work and include the appropriate Script&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; references&amp;#160; in your page .     &lt;br /&gt;For the PopupControlBehavior , the script files would be :&lt;/p&gt;  &lt;pre class="darkcsharpcode"&gt;AjaxControlToolkit.ExtenderBase.BaseScripts.js
AjaxControlToolkit.Common.Common.js
AjaxControlToolkit.Compat.Timer.Timer.js
AjaxControlToolkit.Animation.Animations.js
AjaxControlToolkit.Animation.AnimationBehavior.js
AjaxControlToolkit.PopupExtender.PopupBehavior.js
AjaxControlToolkit.PopupControl.PopupControlBehavior.js&lt;/pre&gt;

&lt;p&gt;Step 1: Declare the behaviors you wish to attach to the templated elements.&lt;/p&gt;

&lt;pre class="darkcsharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt; &lt;span class="attr"&gt;xmlns:sys&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;javascript:Sys&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;xmlns:popup&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;javascript:AjaxControlToolkit.PopupControlBehavior&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Step 2 : In the template , attach this behavior to the target element using the sys:attach syntax.&lt;/p&gt;

&lt;pre class="darkcsharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt; &lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;#&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;sys:attach&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;popup&amp;quot;&lt;/span&gt; .....&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Some Text Here&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Step 3 : Depending on the behavior you are using , set the appropriate properties . 
  &lt;br /&gt;Since I am using the PopupControlBehavior , we will need to set the PopupControlID and the Position properties of the behavior.&lt;/p&gt;

&lt;pre class="darkcsharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt; &lt;span class="attr"&gt;popup:popupcontrolid&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;&amp;quot;&lt;/span&gt;  &lt;span class="attr"&gt;popup:position&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;4&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;...&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Declarative template&amp;#160; for Master-Details view with popupbehavior : &lt;/strong&gt;&lt;/p&gt;

&lt;pre class="darkcsharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;listTemplate&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;width: 150px&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;yellow&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ul&lt;/span&gt; &lt;span class="attr"&gt;sys:attach&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;dataview&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;sys-template&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;dataview:data&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;{{ localData }}&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;li&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;           &amp;lt;&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt; &lt;span class="attr"&gt;sys:attach&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;popup&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;popup:popupcontrolid&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;{{'subDiv'+ListID}}&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;popup:position&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;4&amp;quot;&lt;/span&gt;
      &lt;span class="attr"&gt;sys:id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;{{'master'+ ListID}}&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;{{ ListTitle }}&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;
       &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;{{ 'subDiv' + ListID}}&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;grey&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;display: none; width: 300px&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;
           &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ul&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;sys-template&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;sys:attach&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;dataview&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;dataview:data&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;{{ ListElements }}&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;li&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;{{ListElementText}} &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;li&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;
           &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ul&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;
          &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;li&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ul&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Complete Sample Code : &lt;a href="http://cid-925c2d2bb2d03c6b.skydrive.live.com/self.aspx/Public/DeclarativeMasterDetails.txt"&gt;Click Me&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8945964" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/phaniraj/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://blogs.msdn.com/phaniraj/archive/tags/Demo/default.aspx">Demo</category><category domain="http://blogs.msdn.com/phaniraj/archive/tags/asp.net+ajax+4_2E002E00_0/default.aspx">asp.net ajax 4..0</category><category domain="http://blogs.msdn.com/phaniraj/archive/tags/Documentation/default.aspx">Documentation</category><category domain="http://blogs.msdn.com/phaniraj/archive/tags/AjaxControlToolkit/default.aspx">AjaxControlToolkit</category></item><item><title>Documentation for the AjaxControlToolkit</title><link>http://blogs.msdn.com/phaniraj/archive/2008/08/27/documentation-for-the-ajaxcontroltoolkit.aspx</link><pubDate>Wed, 27 Aug 2008 07:07:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8898885</guid><dc:creator>PhaniRajuYN</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/phaniraj/comments/8898885.aspx</comments><wfw:commentRss>http://blogs.msdn.com/phaniraj/commentrss.aspx?PostID=8898885</wfw:commentRss><description>&lt;strike&gt;&lt;/strike&gt;  &lt;p&gt;Ready for some documentation for the ATK controls ?    &lt;br /&gt;To skip my journey to create this , download the Documentation ( in CHM form) here : &lt;a href="http://cid-925c2d2bb2d03c6b.skydrive.live.com/self.aspx/AjaxControlToolkit%20Documentation/AjaxControlToolkit.chm"&gt;AjaxControlToolkit Docs&lt;/a&gt;&lt;/p&gt;  &lt;h5&gt;Step 1 : Using AjaxDoc to generate the Reflection.org file required by Sandcastle&lt;/h5&gt;  &lt;p&gt;&amp;#160;&amp;#160; 1.0) Download AjaxDoc &lt;a href="http://www.codeplex.com/ajaxdoc"&gt;here &lt;/a&gt;.     &lt;br /&gt;&amp;#160;&amp;#160; 1.1) Download the Latest Source for the AjaxControlToolkit , &lt;a href="http://www.codeplex.com/AjaxControlToolkit/Release/ProjectReleases.aspx?ReleaseId=16488"&gt;here&lt;/a&gt; .&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; 1.2) Get the Script Files from the AjaxControlToolkit project .     &lt;br /&gt;&amp;#160;&amp;#160; 1.3) Create the AjaxControlToolkit.project.xml for AjaxDoc which has script references to the ATK Scripts.     &lt;br /&gt;&amp;#160;&amp;#160; 1.4) Run the Default.aspx page&lt;/p&gt;  &lt;p&gt;Hurdle 1 : DynamicPopulateBehavior.js just refused to load.&amp;#160; &lt;br /&gt;Added this line to ln 150 of ScriptDoc.js file to skip types which throw errors.     &lt;br /&gt;&lt;/p&gt;  &lt;pre class="darkcsharpcode"&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt;(member ===&lt;span class="kwrd"&gt;null&lt;/span&gt; || &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(member)===&lt;span class="str"&gt;&amp;quot;undefined&amp;quot;&lt;/span&gt;) &lt;span class="kwrd"&gt;continue&lt;/span&gt;; &lt;/pre&gt;

&lt;p&gt;&amp;#160; 1.5) Run the Default.aspx page again 
  &lt;br /&gt;

  &lt;br /&gt;Hurdle 2:&amp;#160; “PopupBehavior is undefined”. 

  &lt;br /&gt;1.6) Re-arranged the script references in the Project.xml file to order the script files according to their dependencies. 

  &lt;br /&gt;1.7) Run the Default.aspx page again . 

  &lt;br /&gt;&lt;/p&gt;

&lt;h5&gt;Step 2 : Use SandCastle to produce the CHM File&lt;/h5&gt;

&lt;p&gt;Follow the Steps 5-12 defined here : &lt;a href="http://blogs.msdn.com/sandcastle/archive/2006/07/29/Creating-a-Chm-build-using-Sandcastle.aspx"&gt;Creating a Chm build using Sandcastle&lt;/a&gt; 

  &lt;br /&gt;Whichever Transform you use (Vs2005/Prototype) , in step 8, remove these lines in the sandcastle.config file.&amp;#160; &lt;/p&gt;

&lt;pre class="darkcsharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;language&lt;/span&gt; &lt;span class="attr"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;VisualBasic&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;VisualBasic&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;vb&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;language&lt;/span&gt; &lt;span class="attr"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;CSharp&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;CSharp&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;cs&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;language&lt;/span&gt; &lt;span class="attr"&gt;label&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;ManagedCPlusPlus&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;ManagedCPlusPlus&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;cpp&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="rem"&gt;&amp;lt;!--&amp;lt;language label=&amp;quot;JSharp&amp;quot; name=&amp;quot;JSharp&amp;quot; style=&amp;quot;cs&amp;quot; /&amp;gt;&lt;/span&gt;
&lt;span class="rem"&gt;&amp;lt;language label=&amp;quot;JScript&amp;quot; name=&amp;quot;JScript&amp;quot; style=&amp;quot;cs&amp;quot; /&amp;gt;--&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;There you go ! &lt;/p&gt;
The CHM is not perfect ,&amp;#160; &lt;ol&gt;
  &lt;li&gt;The documentation is missing for the following components 
    &lt;ol&gt;
      &lt;li&gt;AnimationExtender &lt;/li&gt;

      &lt;li&gt;RichTextEditor &lt;/li&gt;

      &lt;li&gt;MultiHandleSlider &lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;

  &lt;li&gt;The Code Comments are missing from the CHM file &lt;/li&gt;

  &lt;li&gt;Insert gripe here &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I'll probably take a look at this again to see if I can generate a CHM which has the missing parts. 
  &lt;br /&gt;And finally , while Its not everything , its not nothing either :) &lt;/p&gt;
Resources: 

&lt;br /&gt;&lt;a href="http://weblogs.asp.net/bleroy/archive/2007/06/27/scriptdoc-1-0-available.aspx"&gt;Bertrand's blog &lt;/a&gt;

&lt;br /&gt;&lt;a href="http://blogs.msdn.com/sandcastle/archive/2006/07/29/Creating-a-Chm-build-using-Sandcastle.aspx"&gt;SandCastle Blog&lt;/a&gt; 

&lt;br /&gt;&lt;a href="http://www.codeplex.com/ajaxdoc"&gt;AjaxDoc on CodePlex&lt;/a&gt; 

&lt;br /&gt;&lt;a href="http://www.codeplex.com/Sandcastle/"&gt;SandCastle on CodePlex&lt;/a&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8898885" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/phaniraj/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://blogs.msdn.com/phaniraj/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://blogs.msdn.com/phaniraj/archive/tags/Demo/default.aspx">Demo</category><category domain="http://blogs.msdn.com/phaniraj/archive/tags/Documentation/default.aspx">Documentation</category><category domain="http://blogs.msdn.com/phaniraj/archive/tags/AjaxControlToolkit/default.aspx">AjaxControlToolkit</category></item></channel></rss>