<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="http://www.dflying.net/styles/rss.css" type="text/css"?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns="http://purl.org/rss/1.0/"
>
 <channel rdf:about="http://dflying.dflying.net/1/feeds/rss10">
  <title>Programmer Dflying</title>
  <link>http://dflying.dflying.net/1</link>
  <description>You may find things like PHP, .NET, Javascript, Atlas and C#. Also, welcome to check out my other stuffs on MSN Space: http://spaces.msn.com/dflying/</description>
    <dc:creator>Dflying</dc:creator>
  <dc:date>126860-04-11T00:00:00Z</dc:date>
  <admin:generatorAgent rdf:resource="http://www.lifetype.net" />
  <items>
   <rdf:Seq>
       <rdf:li rdf:resource="http://dflying.dflying.net/1/archive/139_move_to_httpmedflyingnet.html" />
       <rdf:li rdf:resource="http://dflying.dflying.net/1/archive/129_apply_xslt_to_xml_using_aspnet_atlas_xsltview_control.html" />
       <rdf:li rdf:resource="http://dflying.dflying.net/1/archive/128_sorting_your_list_using_aspnet_atlas_sortbehavior.html" />
       <rdf:li rdf:resource="http://dflying.dflying.net/1/archive/127_paging_your_list_using_aspnet_atlas_pagenavigator_control.html" />
       <rdf:li rdf:resource="http://dflying.dflying.net/1/archive/125_introduction_to_atlas_controls_in_namespace_sysdata__dataview_and_datafilter.html" />
       <rdf:li rdf:resource="http://dflying.dflying.net/1/archive/124_introduction_to_atlas_controls_in_namespace_sysdata__datacolumn_datarow_and_datatable.html" />
       <rdf:li rdf:resource="http://dflying.dflying.net/1/archive/123_introduction_to_atlas_controls_in_namespace_sysdata__datasource_and_xmldatasource.html" />
       <rdf:li rdf:resource="http://dflying.dflying.net/1/archive/122_build_your_own_actions_in_aspnet_atlas.html" />
       <rdf:li rdf:resource="http://dflying.dflying.net/1/archive/120_build_your_own_behaviors_in_aspnet_atlas.html" />
       <rdf:li rdf:resource="http://dflying.dflying.net/1/archive/115_atlas_client_side_javascript_debugging.html" />
      </rdf:Seq>
  </items> 
 </channel>
  <item rdf:about="http://dflying.dflying.net/1/archive/139_move_to_httpmedflyingnet.html">
  <title>Move to http://me.dflying.net/</title>
  <link>http://dflying.dflying.net/1/archive/139_move_to_httpmedflyingnet.html</link>
  <dc:description>&lt;p&gt;I decided to move out using WordPress with a new domain name &lt;/p&gt;
&lt;h1&gt;&lt;a href=&quot;http://me.dflying.net/&quot;&gt;http://me.dflying.net/&lt;/a&gt;&lt;/h1&gt;
for some reason. Kindly remind please update your bookmark if you are
interested in here. The old blog will still exist for you reference.&lt;br /&gt;
I will still post computer tech related posts here. At the meantime, welcome to check my daily life at: &lt;a target=&quot;_blank&quot; href=&quot;http://spaces.msn.com/dflying/&quot;&gt;http://spaces.msn.com/dflying/&lt;/a&gt; and the localized (Chinese) tech blog at: &lt;a target=&quot;_blank&quot; href=&quot;http://dflying.cnblogs.com/&quot;&gt;http://dflying.cnblogs.com/&lt;/a&gt;.&lt;p /&gt;
&lt;p&gt;God bless me!
&lt;/p&gt;&lt;br/&gt;</dc:description>
    <dc:subject>General</dc:subject>
    <dc:date>2006-04-28T23:06:05Z</dc:date>
    <dc:creator>Dflying</dc:creator>
 </item>
  <item rdf:about="http://dflying.dflying.net/1/archive/129_apply_xslt_to_xml_using_aspnet_atlas_xsltview_control.html">
  <title>Apply XSLT to XML Using ASP.NET Atlas XSLTView Control</title>
  <link>http://dflying.dflying.net/1/archive/129_apply_xslt_to_xml_using_aspnet_atlas_xsltview_control.html</link>
  <dc:description>&lt;p&gt;I want to introduce some of the more advanced Atlas &lt;b&gt;Sys.UI.Data&lt;/b&gt; controls in this series, including:&lt;/p&gt;&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;&lt;b&gt;Sys.UI.Data.ListView&lt;/b&gt;: &lt;a href=&quot;http://dflying.dflying.net/1/archive/113_display_listible_data_using_aspnet_atlas_listview_control.html&quot;&gt;Display Listible Data Using ASP.NET Atlas ListView Control&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;b&gt;Sys.UI.Data.ItemView&lt;/b&gt;: &lt;a href=&quot;http://dflying.dflying.net/1/archive/114_display_one_item_in_a_collection_using_aspnet_atlas_itemview_control.html&quot;&gt;Display One Item in a Collection using ASP.NET Atlas ItemView Control&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;b&gt;Sys.UI.Data.DataNavigator&lt;/b&gt;: &lt;a href=&quot;http://dflying.dflying.net/1/archive/127_paging_your_list_using_aspnet_atlas_pagenavigator_control.html&quot;&gt;Paging Your List Using ASP.NET Atlas PageNavigator Control&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;b&gt;Sys.UI.Data.SortBehavior&lt;/b&gt;: &lt;a href=&quot;http://dflying.dflying.net/1/archive/128_sorting_your_list_using_aspnet_atlas_sortbehavior.html&quot;&gt;Sorting Your List Using ASP.NET Atlas SortBehavior&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;b&gt;Sys.UI.Data.XSLTView&lt;/b&gt;: &lt;a href=&quot;http://dflying.dflying.net/1/archive/129_apply_xslt_to_xml_using_aspnet_atlas_xsltview_control.html&quot;&gt;Apply XSLT to XML Using ASP.NET Atlas XSLTView Control&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;This is the fifth, also the last post: &lt;a href=&quot;http://dflying.dflying.net/1/archive/129_apply_xslt_to_xml_using_aspnet_atlas_xsltview_control.html&quot;&gt;Apply XSLT to XML Using ASP.NET Atlas XSLTView Control&lt;/a&gt;&lt;/p&gt;&lt;br/&gt;&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;http://dflying.dflying.net/plugins/plogeshi/styles/plogeshi.css&quot; /&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;XSLT is a stylesheet language for XML. It can style your XML raw data as you wish.&lt;span&gt;  &lt;/span&gt;For more info about the XSLT, please refer to W3C document: &lt;a href=&quot;http://www.w3.org/TR/xslt&quot;&gt;http://www.w3.org/TR/xslt&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Atlas provides the XMLDataSource and XSLTView controls to make it possible to retrieve the XML data and XSLT data from server, apply the XSLT to the XML and display to user on the flight. You may use this feature in many ways, such as an online RSS feed reader application.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;XSLTView control has following properties:&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;document&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: The XML document stores the XML data. You may get the document from an Atlas client side XMLDataSource control and you should always set this property.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;transform&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: The XSLT document stores the XSLT data used for styling your XML. You may also get this by using an XMLDataSource control. You should always set this property.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;parameters&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: The XSLT parameters in XSLT file definitions. Read only.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;And following method:&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;update&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Render the XML document using the XSLT. This method is automatically called when the XSLTView got initialized or one of the properties above is changed.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;OK, let go though a demo for XSLTView control and XMLDataSource control.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;The first step is getting our testing data, both an XML file and an XSLT file. I’ve got these simply by googling and found the files at &lt;a href=&quot;http://www.w3schools.com/xsl/xsl_client.asp&quot;&gt;http://www.w3schools.com/xsl/xsl_client.asp&lt;/a&gt;. For this demo, I just choose the raw XML and XSLT files but in the real world, we may easily get the dynamically generated ones from a Web Service or some other CGIs.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Here is the XML. Save it as MyData.xml.&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;&lt;/span&gt;?xml &lt;span class=&quot;re0&quot;&gt;version&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;1.0&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;encoding&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;iso-8859-1&quot;&lt;/span&gt;?&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;catalog&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;cd&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;title&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Empire Burlesque&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/title&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;artist&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Bob Dylan&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/artist&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;country&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;USA&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/country&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;company&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Columbia&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/company&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;price&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;10.90&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/price&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;year&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;1985&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/year&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/cd&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;cd&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;title&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Empire Burlesque&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/title&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;artist&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Bob Dylan&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/artist&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;country&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;USA&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/country&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;company&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Columbia&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/company&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;price&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;10.90&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/price&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;year&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;1985&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/year&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/cd&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;cd&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;title&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Empire Burlesque&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/title&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;artist&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Bob Dylan&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/artist&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;country&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;USA&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/country&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;company&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Columbia&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/company&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;price&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;10.90&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/price&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;year&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;1985&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/year&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/cd&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;cd&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;title&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Empire Burlesque&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/title&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;artist&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Bob Dylan&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/artist&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;country&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;USA&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/country&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;company&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Columbia&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/company&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;price&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;10.90&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/price&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;year&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;1985&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/year&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/cd&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/catalog&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Here is the XSLT. Save it as MyStyle.xsl.&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;&lt;/span&gt;?xml &lt;span class=&quot;re0&quot;&gt;version&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;1.0&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;encoding&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;iso-8859-1&quot;&lt;/span&gt;?&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;xsl&lt;/span&gt;:stylesheet &lt;span class=&quot;re0&quot;&gt;version&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;1.0&quot;&lt;/span&gt;
xmlns:&lt;span class=&quot;re0&quot;&gt;xsl&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;http://www.w3.org/1999/XSL/Transform&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;xsl&lt;/span&gt;:template &lt;span class=&quot;re0&quot;&gt;match&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;/&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;h2&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;My CD Collection&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/h2&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;table&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;border&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;1&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
      &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;tr&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;bgcolor&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;#9acd32&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;th&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;align&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;left&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;Title&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/th&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;th&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;align&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;left&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;Artist&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/th&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
      &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/tr&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
      &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;xsl&lt;/span&gt;:for-each &lt;span class=&quot;re0&quot;&gt;select&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;catalog/cd&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;tr&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
          &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;xsl&lt;/span&gt;:value-of &lt;span class=&quot;re0&quot;&gt;select&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;title&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
          &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
          &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;xsl&lt;/span&gt;:value-of &lt;span class=&quot;re0&quot;&gt;select&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;artist&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
          &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/tr&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
      &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/xsl&lt;/span&gt;:for-each&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/table&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/xsl&lt;/span&gt;:template&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/xsl&lt;/span&gt;:stylesheet&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Let’s define our ASPX page, we have following two parts to add:&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;Atlas server side control ScriptManager, which is required in every Atlas page to load essential framework files.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&amp;lt;div&amp;gt; with id &lt;b&gt;dataContent&lt;/b&gt;, which is used by Atlas to place the rendered content. &lt;/li&gt;
&lt;/ol&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;&amp;lt;!-- ScriptManager --&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;atlas&lt;/span&gt;:ScriptManager &lt;span class=&quot;re0&quot;&gt;runat&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;server&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;ID&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;scriptManager&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;&amp;lt;!-- XSLTView here (container) --&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;dataContent&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/div&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;The last thing is add Atlas script to the page. There are three sections in the Atlas script block:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Section 1. An XMLDataSource control, used to retrieve the XML data from server.&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;xmlDataSource&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;dataSource&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;autoLoad&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;true&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;serviceURL&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;MyData.xml&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Section 2. Another XMLDataSource control, used to retrieve the XSLT data from server.&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;xmlDataSource&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;xsltSource&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;autoLoad&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;true&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;serviceURL&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;MyStyle.xsl&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Section 3. An XSLTView control used to render the XML using the XSLT definitions. Notice here we are using bindings to set the&lt;b&gt; document&lt;/b&gt; and&lt;b&gt; transform&lt;/b&gt; properties of the XSLT control.&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;xsltView&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;dataContent&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;binding&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;property&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;document&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataContext&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;dataSource&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataPath&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;document&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;binding&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;property&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;transform&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataContext&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;xsltSource&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataPath&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;document&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/xsltView&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Run in browser:&lt;br /&gt;
&lt;img class=&quot;res_image&quot; style=&quot;MARGIN: 5px&quot; src=&quot;http://www.dflying.net/resserver.php?blogId=1&amp;resource=xsltview.JPG&quot; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Source code for this demo can be downloaded here: &lt;a href=&quot;http://dflying.dflying.net/1/resources/AtlasXSLTViewDemo.zip.html&quot;&gt;http://dflying.dflying.net/1/resources/AtlasXSLTViewDemo.zip.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</dc:description>
    <dc:subject>Atlas</dc:subject>
    <dc:date>2006-04-20T05:42:12Z</dc:date>
    <dc:creator>Dflying</dc:creator>
 </item>
  <item rdf:about="http://dflying.dflying.net/1/archive/128_sorting_your_list_using_aspnet_atlas_sortbehavior.html">
  <title>Sorting Your List Using ASP.NET Atlas SortBehavior</title>
  <link>http://dflying.dflying.net/1/archive/128_sorting_your_list_using_aspnet_atlas_sortbehavior.html</link>
  <dc:description>&lt;p&gt;I want to introduce some of the more advanced Atlas &lt;b&gt;Sys.UI.Data&lt;/b&gt; controls in this series, including:&lt;/p&gt;&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;&lt;b&gt;Sys.UI.Data.ListView&lt;/b&gt;: &lt;a href=&quot;http://dflying.dflying.net/1/archive/113_display_listible_data_using_aspnet_atlas_listview_control.html&quot;&gt;Display Listible Data Using ASP.NET Atlas ListView Control&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;b&gt;Sys.UI.Data.ItemView&lt;/b&gt;: &lt;a href=&quot;http://dflying.dflying.net/1/archive/114_display_one_item_in_a_collection_using_aspnet_atlas_itemview_control.html&quot;&gt;Display One Item in a Collection using ASP.NET Atlas ItemView Control&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;b&gt;Sys.UI.Data.DataNavigator&lt;/b&gt;: &lt;a href=&quot;http://dflying.dflying.net/1/archive/127_paging_your_list_using_aspnet_atlas_pagenavigator_control.html&quot;&gt;Paging Your List Using ASP.NET Atlas PageNavigator Control&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;b&gt;Sys.UI.Data.SortBehavior&lt;/b&gt;: &lt;a href=&quot;http://dflying.dflying.net/1/archive/128_sorting_your_list_using_aspnet_atlas_sortbehavior.html&quot;&gt;Sorting Your List Using ASP.NET Atlas SortBehavior&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;b&gt;Sys.UI.Data.XSLTView&lt;/b&gt;: &lt;a href=&quot;http://dflying.dflying.net/1/archive/129_apply_xslt_to_xml_using_aspnet_atlas_xsltview_control.html&quot;&gt;Apply XSLT to XML Using ASP.NET Atlas XSLTView Control&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;This is the fourth post: &lt;a href=&quot;http://dflying.dflying.net/1/archive/128_sorting_your_list_using_aspnet_atlas_sortbehavior.html&quot;&gt;Sorting Your List Using ASP.NET Atlas SortBehavior&lt;/a&gt; &lt;/p&gt;&lt;br/&gt;&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;http://dflying.dflying.net/plugins/plogeshi/styles/plogeshi.css&quot; /&gt;&lt;p&gt;Add sorting feature to you list is pretty cool, and some of the ASP.NET server controls have already had this feature built in, such as the DataGrid and GridView. Atlas also let you do so on client side by providing the&lt;b&gt; Sys.UI.Data.SortBehavior&lt;/b&gt; behavior.&lt;/p&gt;
&lt;p&gt;SortBehavior behavior works with a DataView control (see: &lt;a href=&quot;http://dflying.dflying.net/1/archive/125_introduction_to_atlas_controls_in_namespace_sysdata__dataview_and_datafilter.html&quot;&gt;Introduction to Atlas Controls in Namespace Sys.Data – DataView and DataFilter&lt;/a&gt;) and implements the sorting by changing the &lt;b&gt;sortDirection&lt;/b&gt; property of DataView.&lt;/p&gt;
&lt;p&gt;SortBehavior object has following properties:&lt;/p&gt;
&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;dataView: A reference of DataView object that this SortBehavior will apply the sorting to. You should always set this property.&lt;/li&gt;
&lt;li&gt;sortColumn: The name of the DataView column which this SortBehavior will sort by. You should always set this property.&lt;/li&gt;
&lt;li&gt;sortAscendingCssClass: The CSS class of the control that triggers the sorting when sort direction is Ascending.&lt;/li&gt;
&lt;li&gt;sortDescendingCssClass: The CSS class of the control that triggers the sorting when sort direction is Descending.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Let&#039;s try to sort a list now. First step is to expose a Web Service to Atlas page. The Web Service simply returns introductions to some famous people (except me).&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;System&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;System&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Collections&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;System&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Collections&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Generic&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;System&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ComponentModel&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;System&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;IO&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;System&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Web&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;System&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Web&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Caching&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;System&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Web&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Services&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;System&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Web&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Services&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Protocols&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; Microsoft.&lt;span class=&quot;me1&quot;&gt;Web&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Services&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;//&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// For simplicity this example demonstraes storing and  manipulating &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// the data objects in memory. A database can also be used.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;//&lt;/span&gt;
    
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;WebService&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;Namespace&lt;/span&gt; = &lt;span class=&quot;st0&quot;&gt;&quot;http://tempuri.org/&quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;WebServiceBinding&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ConformsTo = WsiProfiles.&lt;span class=&quot;me1&quot;&gt;BasicProfile1_&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;class&lt;/span&gt; SampleDataService : DataService
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;static&lt;/span&gt; List&amp;lt;Entry&amp;gt; _data;
    &lt;span class=&quot;kw1&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;int&lt;/span&gt; _nextId;
    &lt;span class=&quot;kw1&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;object&lt;/span&gt; _dataLock = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;new&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw4&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;static&lt;/span&gt; List&amp;lt;Entry&amp;gt; Data
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        get
        &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_data == &lt;span class=&quot;kw1&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;lock&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_dataLock&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_data == &lt;span class=&quot;kw1&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                        _data = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;new&lt;/span&gt;&lt;/a&gt; List&amp;lt;Entry&amp;gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
                        _data.&lt;span class=&quot;me1&quot;&gt;Add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;new&lt;/span&gt;&lt;/a&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&quot;Dflying Chen&quot;&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&quot;A small piece of cake&quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
                        _data.&lt;span class=&quot;me1&quot;&gt;Add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;new&lt;/span&gt;&lt;/a&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&quot;Bill Gates&quot;&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&quot;Chairman &amp;amp; Chief Software Architect&quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
                        _data.&lt;span class=&quot;me1&quot;&gt;Add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;new&lt;/span&gt;&lt;/a&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&quot;Scott Guthrie&quot;&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&quot;General Manager&quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
                        _data.&lt;span class=&quot;me1&quot;&gt;Add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;new&lt;/span&gt;&lt;/a&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&quot;Ray Ozzie&quot;&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&quot;CTO&quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
                        _data.&lt;span class=&quot;me1&quot;&gt;Add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;new&lt;/span&gt;&lt;/a&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&quot;Steve Ballmer&quot;&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&quot;CEO&quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
                        _nextId = &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;;
                    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; _data;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;DataObjectMethod&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;DataObjectMethodType.&lt;span class=&quot;me1&quot;&gt;Delete&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;void&lt;/span&gt; DeleteRow&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;int&lt;/span&gt; id&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Entry row &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; _data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row.&lt;span class=&quot;me1&quot;&gt;Id&lt;/span&gt; == id&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;lock&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_dataLock&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    _data.&lt;span class=&quot;me1&quot;&gt;Remove&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;DataObjectMethod&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;DataObjectMethodType.&lt;span class=&quot;me1&quot;&gt;Select&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; SelectRows&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; SampleDataService.&lt;span class=&quot;me1&quot;&gt;Data&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ToArray&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;DataObjectMethod&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;DataObjectMethodType.&lt;span class=&quot;me1&quot;&gt;Insert&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; Entry InsertRow&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;string&lt;/span&gt; name, &lt;span class=&quot;kw4&quot;&gt;string&lt;/span&gt; description&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        Entry newRow;
        &lt;span class=&quot;kw1&quot;&gt;lock&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_dataLock&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            newRow = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;new&lt;/span&gt;&lt;/a&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_nextId++, name, description&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
            _data.&lt;span class=&quot;me1&quot;&gt;Add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;newRow&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; newRow;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;DataObjectMethod&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;DataObjectMethodType.&lt;span class=&quot;me1&quot;&gt;Update&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;void&lt;/span&gt; UpdateRow&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Entry updateRow&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Entry row &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; _data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row.&lt;span class=&quot;me1&quot;&gt;Id&lt;/span&gt; == updateRow.&lt;span class=&quot;me1&quot;&gt;Id&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                row.&lt;span class=&quot;me1&quot;&gt;Name&lt;/span&gt; = updateRow.&lt;span class=&quot;me1&quot;&gt;Name&lt;/span&gt;;
                row.&lt;span class=&quot;me1&quot;&gt;Title&lt;/span&gt; = updateRow.&lt;span class=&quot;me1&quot;&gt;Title&lt;/span&gt;;
                &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;class&lt;/span&gt; Entry
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;string&lt;/span&gt; _name;
    &lt;span class=&quot;kw1&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;string&lt;/span&gt; _title;
    &lt;span class=&quot;kw1&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;int&lt;/span&gt; _id;
&amp;nbsp;
    &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;DataObjectField&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;true&lt;/span&gt;, &lt;span class=&quot;kw1&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;int&lt;/span&gt; Id
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        get &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; _id; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        set &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; _id = value; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;DataObjectField&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;DefaultValue&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&quot;New row&quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;string&lt;/span&gt; Name
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        get &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; _name; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        set &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; _name = value; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;DataObjectField&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;DefaultValue&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;string&lt;/span&gt; Title
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        get &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; _title; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        set &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; _title = value; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        _id = -&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;int&lt;/span&gt; id, &lt;span class=&quot;kw4&quot;&gt;string&lt;/span&gt; name, &lt;span class=&quot;kw4&quot;&gt;string&lt;/span&gt; description&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        _id = id;
        _name = name;
        _title = description;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;Then the ASPX page, there are three sections in the ASPX page you need to consider:&lt;/p&gt;
&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;A ScriptManager control, which is required in every Atlas page.&lt;/li&gt;
&lt;li&gt;The place holder div (&amp;lt;div&amp;gt; with id &lt;b&gt;dataContents&lt;/b&gt;), where Atlas will place the rendered paged list in.&lt;/li&gt;
&lt;li&gt;A hidden &amp;lt;div&amp;gt;, which is used to define the templates.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Here’s the code, for more details about the ListView template, please refer to: &lt;a href=&quot;http://dflying.dflying.net/1/archive/113_display_listible_data_using_aspnet_atlas_listview_control.html&quot;&gt;Display Listible Data Using ASP.NET Atlas ListView Control&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;&amp;lt;!-- ScriptManager --&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;atlas&lt;/span&gt;:ScriptManager &lt;span class=&quot;re0&quot;&gt;runat&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;server&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;ID&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;scriptManager&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;&amp;lt;!-- Element for ListView (container) --&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;dataContents&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/div&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;&amp;lt;!-- Templates --&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;style&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;visibility: hidden; display: none&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;masterTemplate&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;table&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;border&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;1&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;cellpadding&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;3&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;style&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;width:30em;&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;thead&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;tr&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;href&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;#&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;sortId&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;ID&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/a&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;href&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;#&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;sortName&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;Name&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/a&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;href&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;#&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;sortTitle&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;Title&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/a&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/tr&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/thead&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;tbody&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;masterItemTemplateParent&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;tr&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;masterItemTemplate&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
                    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;masterId&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/span&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;masterName&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/span&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;masterTitle&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/span&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/tr&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/tbody&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/table&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/div&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/div&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;Time for the Atlas XML scripts. There are four sections of the script.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Section 1&lt;/strong&gt;. Atlas client side control DataSource, used to retrieve data from server.&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;dataSource&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;dataSource&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;autoLoad&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;true&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;serviceURL&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;SampleDataService.asmx&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;strong&gt;Section 2&lt;/strong&gt;. A DataView, used to paging the collection we get in Section 1.&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;dataView&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;view&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;binding&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataContext&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;dataSource&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataPath&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;data&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;property&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;data&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/dataView&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;strong&gt;Section 3&lt;/strong&gt;. A ListView control, used to display our list.&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;listView&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;dataContents&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;itemTemplateParentElementId&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;masterItemTemplateParent&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;binding&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataContext&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;view&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataPath&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;filteredData&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;property&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;data&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;layoutTemplate&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;template&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;layoutElement&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;masterTemplate&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/layoutTemplate&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;itemTemplate&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;template&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;layoutElement&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;masterItemTemplate&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;label&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;masterId&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;binding&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataPath&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;Id&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;property&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/label&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;label&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;masterName&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;binding&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataPath&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;Name&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;property&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/label&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;label&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;masterTitle&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;binding&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataPath&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;Title&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;property&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/label&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/template&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/itemTemplate&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/listView&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;strong&gt;Section 4&lt;/strong&gt;. Three Atlas controls with SortBehavior behavior, used to trigger the sorting.&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;control&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;sortId&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;behaviors&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;sortBehavior&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataView&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;view&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;sortColumn&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;Id&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/behaviors&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/control&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;control&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;sortName&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;behaviors&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;sortBehavior&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataView&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;view&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;sortColumn&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;Name&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/behaviors&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/control&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;control&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;sortTitle&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;behaviors&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;sortBehavior&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataView&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;view&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;sortColumn&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;Title&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/behaviors&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/control&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;Test in browser:&lt;/p&gt;
&lt;p&gt;Initial order:&lt;br /&gt;
&lt;img class=&quot;res_image&quot; style=&quot;MARGIN: 5px&quot; src=&quot;http://www.dflying.net/resserver.php?blogId=1&amp;resource=sort1.JPG&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Sort by Name – Ascending:&lt;br /&gt;
&lt;img class=&quot;res_image&quot; style=&quot;MARGIN: 5px&quot; src=&quot;http://www.dflying.net/resserver.php?blogId=1&amp;resource=sort2.JPG&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Sort by Name – Descending:&lt;br /&gt;
&lt;img class=&quot;res_image&quot; style=&quot;MARGIN: 5px&quot; src=&quot;http://www.dflying.net/resserver.php?blogId=1&amp;resource=sort3.JPG&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Source code for this demo can be downloaded here: &lt;a id=&quot;res_148&quot; href=&quot;http://www.dflying.net/resserver.php?blogId=1&amp;resource=SortBehaviorDemo.zip&quot; type=&quot;application/zip&quot;&gt;SortBehaviorDemo.zip&lt;/a&gt;&lt;/p&gt;</dc:description>
    <dc:subject>Atlas</dc:subject>
    <dc:date>2006-04-19T00:18:20Z</dc:date>
    <dc:creator>Dflying</dc:creator>
 </item>
  <item rdf:about="http://dflying.dflying.net/1/archive/127_paging_your_list_using_aspnet_atlas_pagenavigator_control.html">
  <title>Paging Your List Using ASP.NET Atlas PageNavigator Control</title>
  <link>http://dflying.dflying.net/1/archive/127_paging_your_list_using_aspnet_atlas_pagenavigator_control.html</link>
  <dc:description>&lt;p&gt;I want to introduce some of the more advanced Atlas &lt;b&gt;Sys.UI.Data&lt;/b&gt; controls in this series, including:&lt;/p&gt;&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;&lt;b&gt;Sys.UI.Data.ListView&lt;/b&gt;: &lt;a href=&quot;http://dflying.dflying.net/1/archive/113_display_listible_data_using_aspnet_atlas_listview_control.html&quot;&gt;Display Listible Data Using ASP.NET Atlas ListView Control&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;b&gt;Sys.UI.Data.ItemView&lt;/b&gt;: &lt;a href=&quot;http://dflying.dflying.net/1/archive/114_display_one_item_in_a_collection_using_aspnet_atlas_itemview_control.html&quot;&gt;Display One Item in a Collection using ASP.NET Atlas ItemView Control&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;b&gt;Sys.UI.Data.DataNavigator&lt;/b&gt;: &lt;a href=&quot;http://dflying.dflying.net/1/archive/127_paging_your_list_using_aspnet_atlas_pagenavigator_control.html&quot;&gt;Paging Your List Using ASP.NET Atlas PageNavigator Control&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;b&gt;Sys.UI.Data.SortBehavior&lt;/b&gt;: &lt;a href=&quot;http://dflying.dflying.net/1/archive/128_sorting_your_list_using_aspnet_atlas_sortbehavior.html&quot;&gt;Sorting Your List Using ASP.NET Atlas SortBehavior&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;b&gt;Sys.UI.Data.XSLTView&lt;/b&gt;: &lt;a href=&quot;http://dflying.dflying.net/1/archive/129_apply_xslt_to_xml_using_aspnet_atlas_xsltview_control.html&quot;&gt;Apply XSLT to XML Using ASP.NET Atlas XSLTView Control&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;This is the third post: &lt;a href=&quot;http://dflying.dflying.net/1/archive/127_paging_your_list_using_aspnet_atlas_pagenavigator_control.html&quot;&gt;Paging Your List Using ASP.NET Atlas PageNavigator Control&lt;/a&gt;&lt;/p&gt;&lt;br/&gt;&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;http://dflying.dflying.net/plugins/plogeshi/styles/plogeshi.css&quot; /&gt;&lt;p&gt;Put all your records on one page will always be a bad idea especially you have hundreds of rows or more. Your user needs to scroll up and down the page, even uses Control + F to open a search box to find their interesting content. Some of the ASP.NET server controls have this functionality such as the DataGrid and GridView. And Atlas client side control&lt;b&gt; Sys.UI.Data.DataNavigator&lt;/b&gt;&lt;span&gt; also provides this feature on the client side, which is very useful and makes the life easier.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;DataNavigator control works with DataView control (see: &lt;a href=&quot;http://dflying.dflying.net/1/archive/125_introduction_to_atlas_controls_in_namespace_sysdata__dataview_and_datafilter.html&quot;&gt;Introduction to Atlas Controls in Namespace Sys.Data – DataView and DataFilter&lt;/a&gt;). We know that the DataView does not provide the page navigation methods, so we have to set the &lt;b&gt;pageIndex&lt;/b&gt; property of DataView manually to make the navigation work, which is rude and developers are easy to make mistakes such as forgetting to check the boundary of &lt;b&gt;pageIndex&lt;/b&gt;. That’s the reason why Atlas offers you the DataNavigator control, which acts as the proxy of DataView by providing navigation operations on the DataView.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;DataNavigator object only has one property:&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;&lt;b&gt;dataView&lt;/b&gt;: A reference of DataView object that this DataNavigator operates on. You should always set this peoperty.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Still, to use the DataNavigator, you have to provide some Atlas Buttons with some specified &lt;b&gt;commandName&lt;/b&gt; property values to trigger the paging operations. Also, the property &lt;b&gt;parent&lt;/b&gt; of these should be set to the DataNavigator to make sure that the DataNavigator can capture these commands.&lt;/p&gt;
&lt;p&gt;There are following five command name values you may choose. All the command name values are case insensitive.&lt;/p&gt;
&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;&lt;b&gt;page&lt;/b&gt;: Switch current page index to the value specified in the command argument. This is almost as raw as the way by changing page index value directly.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;nextpage&lt;/b&gt;: Switch to the next page.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;previouspage&lt;/b&gt;: Switch to the previous page.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;firstpage&lt;/b&gt;: Switch to the first page.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;lastpage&lt;/b&gt;: Switch to the last page.&lt;/li&gt;
&lt;/ol&gt;&lt;p /&gt;
&lt;p&gt;Ok for the introductions, let’s go through a demo to get familiar with the DataNavigator control.&lt;/p&gt;
&lt;p&gt;The first thing is to expose a Web Service for Atlas pages. Following is the source code for MyDataService.asmx and it is very easy to understand so I just skip the detailed introductions. It just simply returns a collection of 100 entries.&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;System&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;System&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Collections&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;System&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Collections&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Generic&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;System&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ComponentModel&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;System&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;IO&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;System&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Web&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;System&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Web&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Caching&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;System&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Web&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Services&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;System&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Web&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Services&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Protocols&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;using&lt;/span&gt; Microsoft.&lt;span class=&quot;me1&quot;&gt;Web&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Services&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;//&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// For simplicity this example demonstraes storing and  manipulating &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// the data objects in memory. A database can also be used.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;//&lt;/span&gt;
    
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;WebService&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;Namespace&lt;/span&gt; = &lt;span class=&quot;st0&quot;&gt;&quot;http://tempuri.org/&quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;WebServiceBinding&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ConformsTo = WsiProfiles.&lt;span class=&quot;me1&quot;&gt;BasicProfile1_&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;class&lt;/span&gt; MyDataService : DataService
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;static&lt;/span&gt; List&amp;lt;Entry&amp;gt; _data;
    &lt;span class=&quot;kw1&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;object&lt;/span&gt; _dataLock = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;new&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw4&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;static&lt;/span&gt; List&amp;lt;Entry&amp;gt; Data
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        get
        &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_data == &lt;span class=&quot;kw1&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;lock&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_dataLock&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_data == &lt;span class=&quot;kw1&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                        _data = &lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;new&lt;/span&gt;&lt;/a&gt; List&amp;lt;Entry&amp;gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
                        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;int&lt;/span&gt; i = &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;; i &amp;lt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;; i++&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                        &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                            _data.&lt;span class=&quot;me1&quot;&gt;Add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=new+msdn.microsoft.com&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;new&lt;/span&gt;&lt;/a&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i, &lt;span class=&quot;st0&quot;&gt;&quot;Dflying &quot;&lt;/span&gt; + i.&lt;span class=&quot;me1&quot;&gt;ToString&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, &lt;span class=&quot;kw4&quot;&gt;string&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Format&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&quot;Dflying{0}@dflying.net&quot;&lt;/span&gt;, i.&lt;span class=&quot;me1&quot;&gt;ToString&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
                        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
                    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; _data;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;DataObjectMethod&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;DataObjectMethodType.&lt;span class=&quot;me1&quot;&gt;Select&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; SelectRows&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; MyDataService.&lt;span class=&quot;me1&quot;&gt;Data&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ToArray&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;class&lt;/span&gt; Entry
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;string&lt;/span&gt; _name;
    &lt;span class=&quot;kw1&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;string&lt;/span&gt; _email;
    &lt;span class=&quot;kw1&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;int&lt;/span&gt; _id;
&amp;nbsp;
    &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;DataObjectField&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;true&lt;/span&gt;, &lt;span class=&quot;kw1&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;int&lt;/span&gt; Id
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        get &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; _id; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        set &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; _id = value; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;DataObjectField&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;DefaultValue&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&quot;New row&quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;string&lt;/span&gt; Name
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        get &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; _name; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        set &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; _name = value; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;DataObjectField&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;DefaultValue&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;string&lt;/span&gt; Email
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        get &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; _email; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        set &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; _email = value; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        _id = -&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;public&lt;/span&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;int&lt;/span&gt; id, &lt;span class=&quot;kw4&quot;&gt;string&lt;/span&gt; name, &lt;span class=&quot;kw4&quot;&gt;string&lt;/span&gt; description&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        _id = id;
        _name = name;
        _email = description;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;Then the ASPX page, there are four sections in the ASPX page you need to consider:&lt;/p&gt;
&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;A ScriptManager control, which is required in every Atlas page.&lt;/li&gt;
&lt;li&gt;The place holder div (&amp;lt;div&amp;gt; with id &lt;b&gt;dataContents&lt;/b&gt;), where Atlas will place the rendered paged list in.&lt;/li&gt;
&lt;li&gt;A group of buttons (the command buttons) in a container div (the DataNavigator), which are used for implementing the page navigation.&lt;/li&gt;
&lt;li&gt;A hidden &amp;lt;div&amp;gt;, which is used to define the templates.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Here’s the code, for more details about the ListView template, please refer to: &lt;a href=&quot;http://dflying.dflying.net/1/archive/113_display_listible_data_using_aspnet_atlas_listview_control.html&quot;&gt;Display Listible Data Using ASP.NET Atlas ListView Control&lt;/a&gt; &lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;&amp;lt;!-- ScriptManager --&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;atlas&lt;/span&gt;:ScriptManager &lt;span class=&quot;re0&quot;&gt;runat&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;server&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;ID&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;scriptManager&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;&amp;lt;!-- Element for paged ListView (container) --&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;dataContents&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/div&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;&amp;lt;!-- PageNavigator --&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;pageNavigator&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;input&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;type&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;button&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;btnFirstPage&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;value&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;&amp;lt;&amp;lt;&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;input&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;type&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;button&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;btnPrevPage&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;value&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;&amp;lt;&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;lblPageNumber&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/span&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; / &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;lblPageCount&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/span&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;input&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;type&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;button&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;btnNextPage&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;value&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;&amp;gt;&lt;/span&gt;&amp;quot; /&amp;gt;
    &lt;span class=&quot;sc3&quot;&gt;&amp;lt;input type=&quot;&lt;/span&gt;button&lt;span class=&quot;st0&quot;&gt;&quot; id=&quot;&lt;/span&gt;btnLastPage&lt;span class=&quot;st0&quot;&gt;&quot; value=&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;gt;&amp;quot; /&amp;gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/div&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;&amp;lt;!-- Templates --&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;style&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;visibility: hidden; display: none&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;table&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;myList_layoutTemplate&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;border&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;1&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;cellpadding&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;3&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;style&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;width:20em;&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;thead&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;tr&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;span&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;No.&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/span&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;span&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Name&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/span&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;span&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Email&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/span&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/tr&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/thead&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;&amp;lt;!-- Repeat Template --&amp;gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;tbody&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;myList_itemTemplateParent&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;&amp;lt;!-- Repeat Item Template --&amp;gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;tr&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;myList_itemTemplate&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;lblIndex&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;lblName&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;lblEmail&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/td&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/tr&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/tbody&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/table&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;&amp;lt;!-- Empty Template --&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;myList_emptyTemplate&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
        No Data
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/div&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/div&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;Let’s look at the Atlas XML scripts. There are four sections of the script.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Section 1&lt;/strong&gt;. Atlas client side control DataSource, used to retrieve data from server. &lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;dataSource&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;dataSource&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;autoLoad&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;true&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;serviceURL&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;MyDataService.asmx&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;strong&gt;Section 2&lt;/strong&gt;. A DataView, used to paging the collection we get in Section 1.&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;dataView&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;view&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;pageSize&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;12&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;binding&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataContext&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;dataSource&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataPath&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;data&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;property&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;data&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/dataView&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p /&gt;&lt;p&gt;&lt;strong&gt;Section 3&lt;/strong&gt;. DataNavigator control and buttons. Note here we have four navigation buttons with four kinds of &lt;b&gt;commandName&lt;/b&gt; properties and the &lt;b&gt;parent&lt;/b&gt; properties are all set to the DataNavigator object.&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;dataNavigator&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;pageNavigator&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataView&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;view&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;button&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;btnFirstPage&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;parent&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;pageNavigator&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;command&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;FirstPage&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;button&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;btnPrevPage&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;parent&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;pageNavigator&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;command&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;PreviousPage&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;binding&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;property&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;enabled&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataPath&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;hasPreviousPage&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/button&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;button&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;btnNextPage&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;parent&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;pageNavigator&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;command&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;NextPage&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;binding&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;property&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;enabled&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataPath&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;hasNextPage&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/button&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;button&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;btnLastPage&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;parent&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;pageNavigator&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;command&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;LastPage&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;strong&gt;Section 4&lt;/strong&gt;. Two labels show the page count and current page index.&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;label&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;lblPageNumber&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;binding&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataContext&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;view&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;property&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;text&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataPath&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;pageIndex&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;transform&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;Add&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/label&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;label&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;lblPageCount&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;binding&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataContext&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;view&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;property&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;text&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;dataPath&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;pageCount&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/bindings&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/label&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;Ok, test in browser:&lt;br /&gt;
&lt;img class=&quot;res_image&quot; style=&quot;MARGIN: 5px&quot; src=&quot;http://www.dflying.net/resserver.php?blogId=1&amp;resource=datanavigator.JPG&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Source code for this demo can be downloaded here: &lt;a id=&quot;res_143&quot; href=&quot;http://www.dflying.net/resserver.php?blogId=1&amp;resource=DataNavigatorDemo.zip&quot; type=&quot;application/zip&quot;&gt;DataNavigatorDemo.zip&lt;/a&gt;&lt;/p&gt;</dc:description>
    <dc:subject>Atlas</dc:subject>
    <dc:date>2006-04-17T23:33:00Z</dc:date>
    <dc:creator>Dflying</dc:creator>
 </item>
  <item rdf:about="http://dflying.dflying.net/1/archive/125_introduction_to_atlas_controls_in_namespace_sysdata__dataview_and_datafilter.html">
  <title>Introduction to Atlas Controls in Namespace Sys.Data – DataView and DataFilter</title>
  <link>http://dflying.dflying.net/1/archive/125_introduction_to_atlas_controls_in_namespace_sysdata__dataview_and_datafilter.html</link>
  <dc:description>&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;This is the third, also the last part of introductions to Sys.Data controls. In my previous posts, we know how to get data from server side and store in client side by using DataSource controls and how to modify the data we get on client side by using DataTable object. We can display the data in the DataTable right now to user but in most cases we need to do some decorations before showing, for example, we may need to page our data if it contains thousands of rows, or our user may be only interested in some of the data such as Dflying’s data. That’s the reason why we have to introduce the DataView and DataFilter objects. Now let’s see how to decorate our data for UI controls by using DataView object and DataFilter object.&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Here are the properties of DataView object:&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;data&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: The actual data for decorating. You should always set a DataTable get from DataSource control to this property to let the DataView know the source data.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;filteredData&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: The filtered data. Such as the paged data or the sorted data.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;filters&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: A collection of DataFilter objects to filter the data. You can specify the DataView a collection of filters and they will be applied to your data one by one. For more information about DataFilter object, please see below.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;hasNextPage&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Whether there’s a next page.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;hasPreviousPage&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Whether there’s a previous page.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;length&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: How many rows in current page.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;pageCount&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: How many pages in current DataView.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;pageIndex&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Current page index.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;pageSize&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: How many rows per page. You should set this property if you need to page your data.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;sortColumn&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: The column you want to sort the rows by. You should set this property if you need the sort feature.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;sortDirection&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: The directions you want to sort. Either Ascending (default value) or Descending. &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;And DataView object has one method:&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;sort&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Apply the sort operation according to &lt;b&gt;sortColumn&lt;/b&gt; property and &lt;b&gt;sortDirection&lt;/b&gt; property.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Remember you may need two additional controls in Sys.Data.UI namespace: DataNavigator and SortBehavior to help you with the paging and sorting issues. And for introductions and demos for DataView and these two controls, please be a little patient on my future posts.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Ok for the DataView object, let’s see the DataFilter object:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;The Sys.Data.DataFilter class in Atlas is designed as the abstract base class of all the filters. It provides an abstract method &lt;b&gt;filter&lt;/b&gt; for the derived class to implement its specified filter rules.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Atlas provides one build-in filter – the PropertyFilter, which is used for filtering the items by one specified property and its value.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;PropertyFilter object has two peoperties:&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;property&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: The property you want to apply the filter to.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;value&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: The value whose specified property equals to will pass this filter.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Demos for DataFilter object is coming soon.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;At the end of this series let’s have a summary about the three parts of Atlas controls in namespace Sys.Data. Keep these in your mind will help a lot in future developing.&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;DataSource and XMLDataSource are used for getting data from server and store is on the client side.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;span&gt;&lt;span style=&quot;FONT: 7pt &#039;Times New Roman&#039;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;DataTable, including DataRow and DataColumn, is the actual storage of client side data and you may modify the data as you with on the client side.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;DataView and DataFilter are used for decorating your data before displaying to user. These operations do not change the actually data but behave just like the SQL syntax &lt;b&gt;where&lt;/b&gt; and &lt;b&gt;order by&lt;/b&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;</dc:description>
    <dc:subject>Atlas</dc:subject>
    <dc:date>2006-04-15T20:54:36Z</dc:date>
    <dc:creator>Dflying</dc:creator>
 </item>
  <item rdf:about="http://dflying.dflying.net/1/archive/124_introduction_to_atlas_controls_in_namespace_sysdata__datacolumn_datarow_and_datatable.html">
  <title>Introduction to Atlas Controls in Namespace Sys.Data – DataColumn, DataRow and DataTable</title>
  <link>http://dflying.dflying.net/1/archive/124_introduction_to_atlas_controls_in_namespace_sysdata__datacolumn_datarow_and_datatable.html</link>
  <dc:description>&lt;p&gt;In this post we are going to touch the key client side data components of Atlas – the DataTable, which is used to represent a tabular data structure. The DataTable object connects the actual data – the DataSource and the UI control – the ListView. It is the data field of a DataSource object, and can also be decorated by a DataView object by filtering and sorting the rows or doing the page navigations. Here Atlas also shares the ASP.NET/ADO.NET concepts: the Atlas DataSource is similar with ADO.NET SqlDataSource, the Atlas DataTable is similar with ADO.NET DataTable and the Atlas ListView is similar with ASP.NET ListView. Pretty easy to understand, isn&#039;t it? A DataTable contains a collection of DataColumn objects and a collection of DataRow objects, so let&#039;s begin with the DataColumn and DataRow.&lt;/p&gt;&lt;br/&gt;&lt;p&gt;&lt;b&gt;Sys.Data.DataColumn&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The DataColumn object is really simple, only following properties:&lt;/p&gt;&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;&lt;b&gt;columnName&lt;/b&gt;: Column name string.&lt;/li&gt;&lt;li&gt;&lt;b&gt;dataType&lt;/b&gt;: The type of data in this column.&lt;/li&gt;&lt;li&gt;&lt;b&gt;defaultValue&lt;/b&gt;: The default value in this column.&lt;/li&gt;&lt;li&gt;&lt;b&gt;isKey&lt;/b&gt;: Whether data in this column is the key of DataTable.&lt;/li&gt;&lt;li&gt;&lt;b&gt;readOnly&lt;/b&gt;: Whether data in this column is read only.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;b&gt;Sys.Data.DataRow&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Sys.Data.DataRow object is a little bit of complex, there’s following properties:&lt;/p&gt;&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;&lt;b&gt;$isDirty&lt;/b&gt;: Whether this row is modified and not submitted to server yet.&lt;/li&gt;&lt;li&gt;&lt;b&gt;$index&lt;/b&gt;:&lt;span&gt;  &lt;/span&gt;The index of current row in DataTable.&lt;/li&gt;&lt;li&gt;&lt;b&gt;$selected&lt;/b&gt;: Whether this row is selected.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;And following event:&lt;/p&gt;&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;&lt;b&gt;propertyChanged&lt;/b&gt;: gets fired when one of the above properties is changed.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Sys.Data.DataTable&lt;/p&gt;&lt;p&gt;Now let start the DataTable, the DataTable object implements the Sys.Data.IData interface. Following properties:&lt;/p&gt;&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;&lt;b&gt;columns&lt;/b&gt;: Current collection of DataColumn objects. You may add/update/delete a column when get the collection.&lt;/li&gt;&lt;li&gt;&lt;b&gt;keyNames&lt;/b&gt;: The collection of key columns’&lt;span&gt;  &lt;/span&gt;&lt;b&gt;columnName&lt;/b&gt; property.&lt;/li&gt;&lt;li&gt;&lt;b&gt;length&lt;/b&gt;: Length of row collection.&lt;/li&gt;&lt;li&gt;&lt;b&gt;isDirty&lt;/b&gt;: Whether the DataRow collection is changed and not submitted to server yet.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;And following methods:&lt;/p&gt;&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;&lt;b&gt;add&lt;/b&gt;: Add a new row to current DataTable.&lt;/li&gt;&lt;li&gt;&lt;b&gt;clear&lt;/b&gt;: Delete all rows in current DataTable.&lt;/li&gt;&lt;li&gt;&lt;b&gt;remove&lt;/b&gt;: Remove an existing row in current DataTable.&lt;/li&gt;&lt;li&gt;&lt;b&gt;createRow&lt;/b&gt;: Create a new row based on current DataTable’s schema.&lt;/li&gt;&lt;li&gt;&lt;b&gt;getChanges&lt;/b&gt;: Get the changes of current DataTable. There are three parts in the result.&lt;/li&gt;&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;a&quot;&gt;&lt;li&gt;&lt;b&gt;updated&lt;/b&gt;: The updated row collection.&lt;/li&gt;&lt;li&gt;&lt;b&gt;inserted&lt;/b&gt;: The added row collection.&lt;/li&gt;&lt;li&gt;&lt;b&gt;deleted&lt;/b&gt;: The delete row collection.&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;&lt;b&gt;getColumn&lt;/b&gt;: Get a DataColumn object by column name.&lt;/li&gt;&lt;li&gt;&lt;b&gt;getRow&lt;/b&gt;: Get a DataRow object by row index.&lt;/li&gt;&lt;li&gt;&lt;b&gt;getItem&lt;/b&gt;: The same to &lt;b&gt;getRow&lt;/b&gt; method.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Also events:&lt;/p&gt;&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;&lt;b&gt;collectionChanged&lt;/b&gt;: Gets fired when the DataRow collection is modified.&lt;/li&gt;&lt;li&gt;&lt;b&gt;propertyChanged&lt;/b&gt;: Gets fired when one of the properties above is changes.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Demos about using DataTable object please refer to: &lt;a href=&quot;http://dflying.dflying.net/1/archive/81_introduction_to_atlas_datatable.html&quot;&gt;http://dflying.dflying.net/1/archive/81_introduction_to_atlas_datatable.html&lt;/a&gt; &lt;/p&gt;</dc:description>
    <dc:subject>Atlas</dc:subject>
    <dc:date>2006-04-14T20:39:11Z</dc:date>
    <dc:creator>Dflying</dc:creator>
 </item>
  <item rdf:about="http://dflying.dflying.net/1/archive/123_introduction_to_atlas_controls_in_namespace_sysdata__datasource_and_xmldatasource.html">
  <title>Introduction to Atlas Controls in Namespace Sys.Data – DataSource and XMLDataSource</title>
  <link>http://dflying.dflying.net/1/archive/123_introduction_to_atlas_controls_in_namespace_sysdata__datasource_and_xmldatasource.html</link>
  <dc:description>&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Since there are no introductions or official documents about the Atlas controls in namespace Sys.Data, and data accessing is so important a part is current web applications, I decided to share some of my ideas and experiences on this part of Atlas by a series of posts. Hope may help. Please keep in mind that this series is just the introductions. That is, I will only tell how to use these controls but not how they are implemented or worked. If you are interested in the more advanced topics, please be a little patient for I prefer finishing this kind of introduction series firstly. By the way, I am still in the progress of learning, so anything incorrect please point me out directly. And, any ideas please shout out by commenting down.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;You have to manage data in most of your web applications. I mean retrieving and displaying to user and saving back to database after modifying. This is a common task that we have to perform in almost every project, so ASP.NET abstract it as a build-in object, DataSource. Atlas client side script library, as well as ASP.NET, has the same concept of DataSource.&lt;/span&gt;&lt;/p&gt;&lt;br/&gt;&lt;p /&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;There are two kinds of DataSource in Atlas:&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;Sys.Data.DataSource&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: represents a tabular data structure such as the result of a query to the database. Similar to the SQLDataSource object in ASP.NET. This control can be used as the client side data source of ListView (see: &lt;a href=&quot;http://dflying.dflying.net/1/archive/113_display_listible_data_using_aspnet_atlas_listview_control.html&quot;&gt;Display Listible Data Using ASP.NET Atlas ListView Control&lt;/a&gt;) and ItemView (see: &lt;a href=&quot;http://dflying.dflying.net/1/archive/114_display_one_item_in_a_collection_using_aspnet_atlas_itemview_control.html&quot;&gt;Display One Item in a Collection using ASP.NET Atlas ItemView Control&lt;/a&gt;) controls. You can load data from server and save the changes back to server after user modified.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;Sys.Data.XMLDataSource&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: represents a hierarchy data structure such as an XML file. Similar to the XMLDataSource object in ASP.NET. This control can be used as the client side data source of XSLTView (introduction coming soon) control. This is the read only data source that you can only read data and show it to user but not save the modifications back to server.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Now let’s go over the two data source controls above.&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;Sys.Data.DataSource&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;:The DataSource object has following properties:&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;data&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: The data retrieves from database and stores in the client side.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;autoLoad&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Boolean value indicates whether this data source control will load data automatically from server after initializing. You should use &lt;strong&gt;initialData&lt;/strong&gt; instead of using this property if you want to load the data with the page loads, for it needs an extra round to server right after the page loads. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;initialData&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Initial data come with the page. There’s a scenario that there should be some initial data on your page when user hitting the page at the first time, for example, the first page of records of your list. Then we can use an Atlas server side control &lt;strong&gt;InitialData&lt;/strong&gt; to send the data with the page source, to avoid querying server again right after page loads.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;isDirtyAndReady&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Indicates whether this DataSource finished loading data and the data is not empty and the data is not changed.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;isReady&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Indicates whether this DataSource finished loading data from server. You may bind this property to a data bind control’s enabled property to disable the binding control when the data is in loading.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;rowCount&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Rows count of the data.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;serviceURL&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: URL of the Web Service where the DataSource can retrieve data from. You should always set this property.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;parameters&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Parameters append to the service URL. Only used when serviceType is set to Handler.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;serviceType&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Type of this service. Can be set to &lt;b&gt;DataService&lt;/b&gt; or &lt;b&gt;Handler&lt;/b&gt;. Default and recommended value is &lt;b&gt;DataService&lt;/b&gt;, which means your service is derived from &lt;b&gt;Microsoft.Web.Services.DataService&lt;/b&gt; and has the build-in supports for CRUD operations.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Following methods:&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;load&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Retrieves data from server.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;save&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Saves client side changes back to server. Only works if serviceType is set to &lt;b&gt;DataService&lt;/b&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;And following event:&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;dataAvailable&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Gets fired when loading data completed. &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;For demos about this control please refer to: &lt;a href=&quot;http://dflying.dflying.net/1/archive/113_display_listible_data_using_aspnet_atlas_listview_control.html&quot;&gt;Display Listible Data Using ASP.NET Atlas ListView Control&lt;/a&gt; and &lt;a href=&quot;http://dflying.dflying.net/1/archive/114_display_one_item_in_a_collection_using_aspnet_atlas_itemview_control.html&quot;&gt;Display One Item in a Collection using ASP.NET Atlas ItemView Control&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;Sys.Data.XMLDataSource&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;The XMLDataSource object has following properties:&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;autoLoad&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Boolean value indicates whether this data source control will load data automatically from server after initializing. You should use initialDocument instead of using this property if you want to load the data with the page loads, for it needs an extra round to server right after the page loads.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;data&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: The parsed xml data from property &lt;strong&gt;document&lt;/strong&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;document&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: The string contains an xml document.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;initialDocument&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Similar with &lt;strong&gt;initialData&lt;/strong&gt; property of DataSource. And you should always try to use this property when your data comes with the page.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;isReady&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;:&lt;span&gt; &lt;/span&gt;Similar with the one in DataSource. Indicates whether this data source finished loading data and parsing the xml.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;parameters&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Parameters append to the service URL. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;serviceURL&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: URL of the Web Service where the XMLDataSource can retrieve data from. You should always set this property.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;xpath&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: The xpath string used for query the &lt;strong&gt;document&lt;/strong&gt; property and set the &lt;strong&gt;data&lt;/strong&gt; property.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Following methods:&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;load&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Retrieves data from server and parse to &lt;strong&gt;data&lt;/strong&gt; property.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;And following event:&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;span&gt;&lt;span style=&quot;FONT-WEIGHT: normal; FONT-SIZE: 7pt; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;dataAvailable&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt;: Gets fired when loading data completed. &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;Demos for this control is coming soon.&lt;/span&gt;&lt;/p&gt;</dc:description>
    <dc:subject>Atlas</dc:subject>
    <dc:date>2006-04-14T06:14:34Z</dc:date>
    <dc:creator>Dflying</dc:creator>
 </item>
  <item rdf:about="http://dflying.dflying.net/1/archive/122_build_your_own_actions_in_aspnet_atlas.html">
  <title>Build Your Own Actions in ASP.NET Atlas</title>
  <link>http://dflying.dflying.net/1/archive/122_build_your_own_actions_in_aspnet_atlas.html</link>
  <dc:description>&lt;p&gt;Components derived from the Action class in Atlas are used to specify the code to execute in response to events, which is similar to the event handlers. Action components enable you to declaratively bind actions to client events for common tasks such as calling methods, setting properties, and triggering PostBacks.&lt;/p&gt;&lt;p&gt;The best reference of Atlas is the source code you know, and we can find there are three kinds of Atlas build-in Actions, which inherit from Sys.Action base class:&lt;/p&gt;&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;Sys.InvokeMethodAction: Defines an action that calls a method. &lt;/li&gt;&lt;li&gt;Set.SetPropertyAction: Defines an action that sets an object property to a specified value. &lt;/li&gt;&lt;li&gt;Sys.WebForms.PostBackAction: Defines an action that performs a PostBack.&lt;/li&gt;&lt;/ol&gt;&lt;br/&gt;&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;http://dflying.dflying.net/plugins/plogeshi/styles/plogeshi.css&quot; /&gt;&lt;p&gt;Sometimes you may need to make your own Actions to perform a specified task. Now let&#039;s go through an example, AlertAction, which is used to alert a message when an event got fired, to see how to build your own Atlas Actions.&lt;/p&gt;
&lt;p&gt;Generally, there are four steps to build a custom Action: &lt;/p&gt;
&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;Inherit from &lt;b&gt;Sys.Action&lt;/b&gt; base class.&lt;/li&gt;
&lt;li&gt;Define the properties of you custom Action. In this AlertAction demo, we defined a &lt;strong&gt;message&lt;/strong&gt; property to specify the alert content.&lt;/li&gt;
&lt;li&gt;Implement method performAction() to perform your Action. Here it is very simple for we just need to call the JavaScript build-in function alert().&lt;/li&gt;
&lt;li&gt;Add descriptions in the getDescriptor() method.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Here&#039;s the code for AlertAction. The four steps above are marked inline. Save it as AlertAction.js.&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Sys.&lt;span class=&quot;me1&quot;&gt;AlertAction&lt;/span&gt; = &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    Sys.&lt;span class=&quot;me1&quot;&gt;AlertAction&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;initializeBase&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    
    &lt;span class=&quot;co1&quot;&gt;// step 2&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _message;
    
    &lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_message&lt;/span&gt; = &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; _message;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_message&lt;/span&gt; = &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;value&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        _message = value;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// step 4&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;getDescriptor&lt;/span&gt; = &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; td = Sys.&lt;span class=&quot;me1&quot;&gt;AlertAction&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;callBaseMethod&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&#039;getDescriptor&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
        
        td.&lt;span class=&quot;me1&quot;&gt;addProperty&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;message&#039;&lt;/span&gt;, String&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; td;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    
    &lt;span class=&quot;co1&quot;&gt;// step 3&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;performAction&lt;/span&gt; = &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw3&quot;&gt;alert&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_message&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// step 1&lt;/span&gt;
Sys.&lt;span class=&quot;me1&quot;&gt;AlertAction&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;registerSealedClass&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Sys.AlertAction&#039;&lt;/span&gt;, Sys.&lt;span class=&quot;me1&quot;&gt;Action&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
Sys.&lt;span class=&quot;me1&quot;&gt;TypeDescriptor&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;addType&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;script&#039;&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&#039;alertAction&#039;&lt;/span&gt;, Sys.&lt;span class=&quot;me1&quot;&gt;AlertAction&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;Ok, let&#039;s test the AlertAction in a page. What we need on the page is just a button for invoking the Action.&lt;/p&gt;
&lt;p&gt;&lt;span lang=&quot;EN&quot;&gt;Here is the HTML definition in ASPX. Do not forget to add a reference to our &lt;/span&gt;AlertAction&lt;span lang=&quot;EN&quot;&gt;.js in ScriptManager.&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;atlas&lt;/span&gt;:ScriptManager &lt;span class=&quot;re0&quot;&gt;EnablePartialRendering&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;true&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;ID&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;ScriptManager1&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;runat&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;server&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;Scripts&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;atlas&lt;/span&gt;:ScriptReference &lt;span class=&quot;re0&quot;&gt;Path&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;AlertAction.js&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/Scripts&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/atlas&lt;/span&gt;:ScriptManager&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;div&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;input&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;myButton&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;type&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;button&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;value&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;Click Me!&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/div&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;span lang=&quot;EN&quot;&gt;And here is the Atlas script. Really simple one.&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;script&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;type&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;text/xml-script&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;page&lt;/span&gt; xmlns:&lt;span class=&quot;re0&quot;&gt;script&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;http://schemas.microsoft.com/xml-script/2005&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;components&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;button&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;myButton&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;click&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;alertAction&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;message&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;Button Clicked!&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/click&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/button&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/components&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/page&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/script&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;span lang=&quot;EN&quot;&gt;Runs in browser:&lt;br /&gt;
&lt;img class=&quot;res_image&quot; style=&quot;MARGIN: 5px&quot; src=&quot;http://www.dflying.net/resserver.php?blogId=1&amp;resource=atlasaction.JPG&quot; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang=&quot;EN&quot;&gt;Demo source code available here: &lt;a id=&quot;res_142&quot; href=&quot;http://www.dflying.net/resserver.php?blogId=1&amp;resource=AtlasActionDemo.zip&quot; type=&quot;application/zip&quot;&gt;AtlasActionDemo.zip&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</dc:description>
    <dc:subject>Atlas</dc:subject>
    <dc:date>2006-04-13T03:09:17Z</dc:date>
    <dc:creator>Dflying</dc:creator>
 </item>
  <item rdf:about="http://dflying.dflying.net/1/archive/120_build_your_own_behaviors_in_aspnet_atlas.html">
  <title>Build Your Own Behaviors in ASP.NET Atlas</title>
  <link>http://dflying.dflying.net/1/archive/120_build_your_own_behaviors_in_aspnet_atlas.html</link>
  <dc:description>&lt;p&gt;Behaviors in Atlas are used to define what a control will behave when an event got fired. Behaviors encapsulate actions that can be associated with DHTML events, such as the &lt;b&gt;click&lt;/b&gt; or &lt;b&gt;hover&lt;/b&gt; events. They can also be a kind of components that can be attached to the client control to provide more sophisticated UI and behavioral characteristics, including complex operations such as drag-and-drop behavior, auto-completion, and floating actions. They are defined in a collection named &lt;b&gt;behaviors&lt;/b&gt; on the client control.&lt;/p&gt;&lt;br/&gt;&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;http://dflying.dflying.net/plugins/plogeshi/styles/plogeshi.css&quot; /&gt;&lt;p&gt;From Atlas document and source code, we can find there are a number of Atlas build-in behaviors:&lt;/p&gt;
&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;Click behavior, which provides simple click behavior handling. &lt;/li&gt;
&lt;li&gt;Floating behavior, which provides drag-and-drop behavior. &lt;/li&gt;
&lt;li&gt;Hover behavior, which provides handling for DHTML events such as onmouseover, onmouseout, onfocus, and onblur. &lt;/li&gt;
&lt;li&gt;Pop-up component, which provides pop-up functionality, such as advanced tooltips. &lt;/li&gt;
&lt;li&gt;Auto-complete behavior, which is a specialized behavior that provides the means to complete entries added to text boxes. The behavior requires handlers in order to provide the data for auto-completion.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;The Click behavior is used to handle the onclick event of DHTML, which is useful but really simple. In more complicated scenarios, we may want to separate left click and right click. Though we can put this if-else in the event handler, but it is not the Atlas way, so today I will build a more powerful click behavior (ExtendedClickBehavior) instead, to separate them in the click behavior itself, and let you know how to build your own behaviors in Atlas.&lt;/p&gt;
&lt;p&gt;Generally, there are two steps to build a custom behavior:&lt;/p&gt;
&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;Inherits from &lt;b&gt;Sys.UI.Behavior&lt;/b&gt; base class.&lt;/li&gt;
&lt;li&gt;Define your events which encapsulate the DHTML events. And these events will be exposed to other Atlas controls instead of the raw DHTML events.&lt;/li&gt;
&lt;li&gt;Assign handlers to the events you defined in step 2 in constructor and detach in destructor.&lt;/li&gt;
&lt;li&gt;Invoke your events in the event handlers.&lt;/li&gt;
&lt;li&gt;Add descriptions in the getDescriptor() method.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Here&#039;s the code for ExtendedClickBehavior. The five steps above are marked inline. Save it as ExtendedClickBehavior.js.&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Sys.&lt;span class=&quot;me1&quot;&gt;UI&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ExtendedClickBehavior&lt;/span&gt; = &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    Sys.&lt;span class=&quot;me1&quot;&gt;UI&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ExtendedClickBehavior&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;initializeBase&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    
    &lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _clickHandler;
    
    &lt;span class=&quot;co1&quot;&gt;// step 2&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;click&lt;/span&gt; = &lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;createEvent&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;leftClick&lt;/span&gt; = &lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;createEvent&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;rightClick&lt;/span&gt; = &lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;createEvent&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    
    &lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;dispose&lt;/span&gt; = &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;// step 3&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;control&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;element&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;detachEvent&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;onmousedown&#039;&lt;/span&gt;, _clickHandler&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
        Sys.&lt;span class=&quot;me1&quot;&gt;UI&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ExtendedClickBehavior&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;callBaseMethod&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&#039;dispose&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;initialize&lt;/span&gt; = &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        Sys.&lt;span class=&quot;me1&quot;&gt;UI&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ExtendedClickBehavior&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;callBaseMethod&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&#039;initialize&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;// step 3&lt;/span&gt;
        _clickHandler = &lt;span class=&quot;kw2&quot;&gt;Function&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;createDelegate&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;, clickHandler&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;control&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;element&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;attachEvent&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;onmousedown&#039;&lt;/span&gt;, _clickHandler&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    
    &lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;getDescriptor&lt;/span&gt; = &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; td = Sys.&lt;span class=&quot;me1&quot;&gt;UI&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ExtendedClickBehavior&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;callBaseMethod&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&#039;getDescriptor&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
        
        &lt;span class=&quot;co1&quot;&gt;// step 5&lt;/span&gt;
        td.&lt;span class=&quot;me1&quot;&gt;addEvent&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;click&#039;&lt;/span&gt;, &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
        td.&lt;span class=&quot;me1&quot;&gt;addEvent&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;leftClick&#039;&lt;/span&gt;, &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
        td.&lt;span class=&quot;me1&quot;&gt;addEvent&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;rightClick&#039;&lt;/span&gt;, &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; td;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    
    &lt;span class=&quot;co1&quot;&gt;// step 4&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; clickHandler&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;click&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;invoke&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;, Sys.&lt;span class=&quot;me1&quot;&gt;EventArgs&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Empty&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;window.&lt;span class=&quot;me1&quot;&gt;event&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;button&lt;/span&gt; == &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;leftClick&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;invoke&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;, Sys.&lt;span class=&quot;me1&quot;&gt;EventArgs&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Empty&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;window.&lt;span class=&quot;me1&quot;&gt;event&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;button&lt;/span&gt; == &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;rightClick&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;invoke&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;this&lt;/span&gt;, Sys.&lt;span class=&quot;me1&quot;&gt;EventArgs&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Empty&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// step 1&lt;/span&gt;
Sys.&lt;span class=&quot;me1&quot;&gt;UI&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ExtendedClickBehavior&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;registerSealedClass&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;Sys.UI.ExtendedClickBehavior&#039;&lt;/span&gt;, Sys.&lt;span class=&quot;me1&quot;&gt;UI&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Behavior&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
Sys.&lt;span class=&quot;me1&quot;&gt;TypeDescriptor&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;addType&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;script&#039;&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&#039;extendedClickBehavior&#039;&lt;/span&gt;, Sys.&lt;span class=&quot;me1&quot;&gt;UI&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ExtendedClickBehavior&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;span lang=&quot;EN&quot;&gt;Let&#039;s test our &lt;/span&gt;ExtendedClickBehavior&lt;span&gt; &lt;span lang=&quot;EN&quot;&gt;in a page. We add a &amp;lt;div&amp;gt; for clicking and a label for showing click info.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span lang=&quot;EN&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p /&gt;
&lt;p&gt;&lt;span lang=&quot;EN&quot;&gt;Here is the HTML definition in ASPX. Do not forget to add a reference to our &lt;/span&gt;ExtendedClickBehavior&lt;span lang=&quot;EN&quot;&gt;.js in ScriptManager.&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;atlas&lt;/span&gt;:ScriptManager &lt;span class=&quot;re0&quot;&gt;EnablePartialRendering&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;true&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;ID&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;ScriptManager1&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;runat&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;server&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;Scripts&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;atlas&lt;/span&gt;:ScriptReference &lt;span class=&quot;re0&quot;&gt;Path&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;ExtendedClickBehavior.js&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/Scripts&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/atlas&lt;/span&gt;:ScriptManager&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;div&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;myButton&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;style&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;border: 1px solid black; width: 20em;&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;Click On Me (Left and Right)!&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/div&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;br&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;span&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;myLabel&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;not clicked&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/span&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/div&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;span lang=&quot;EN&quot;&gt;And here is the Atlas script. Note we are using the Atlas setProperty Action to set the text of the label after each click.&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;page&lt;/span&gt; xmlns:&lt;span class=&quot;re0&quot;&gt;script&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;http://schemas.microsoft.com/xml-script/2005&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;components&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;label&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;myButton&quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;behaviors&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;extendedClickBehavior&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;click&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;setProperty&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;target&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;myLabel&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;property&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;text&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;value&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;clicked&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
                    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/click&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;leftClick&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;setProperty&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;target&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;myLabel&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;property&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;text&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;value&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;left clicked&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
                    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/leftClick&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;rightClick&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
                        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;setProperty&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;target&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;myLabel&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;property&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;text&quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;value&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;right clicked&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
                    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/rightClick&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;   
                &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/extendedClickBehavior&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 
            &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/behaviors&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/label&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;label&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;id&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&quot;myLabel&quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/components&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/page&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;span lang=&quot;EN&quot;&gt;Runs in browser:&lt;/span&gt;&lt;br /&gt;&lt;span lang=&quot;EN&quot;&gt;No click:&lt;br /&gt;
&lt;img class=&quot;res_image&quot; style=&quot;MARGIN: 5px&quot; src=&quot;http://www.dflying.net/resserver.php?blogId=1&amp;resource=atlasbehavior1.JPG&quot; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang=&quot;EN&quot;&gt;Left click:&lt;br /&gt;
&lt;img class=&quot;res_image&quot; style=&quot;MARGIN: 5px&quot; src=&quot;http://www.dflying.net/resserver.php?blogId=1&amp;resource=atlasbehavior2.JPG&quot; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang=&quot;EN&quot;&gt;Right Click:&lt;br /&gt;
&lt;img class=&quot;res_image&quot; style=&quot;MARGIN: 5px&quot; src=&quot;http://www.dflying.net/resserver.php?blogId=1&amp;resource=atlasbehavior3.JPG&quot; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang=&quot;EN&quot;&gt;Demo source code available here: &lt;br /&gt;
&lt;a href=&quot;http://dflying.dflying.net/1/resources/ExtendedClickBehaviorDemo.zip.html&quot;&gt;http://dflying.dflying.net/1/resources/ExtendedClickBehaviorDemo.zip.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</dc:description>
    <dc:subject>Atlas</dc:subject>
    <dc:date>2006-04-12T00:30:57Z</dc:date>
    <dc:creator>Dflying</dc:creator>
 </item>
  <item rdf:about="http://dflying.dflying.net/1/archive/115_atlas_client_side_javascript_debugging.html">
  <title>Atlas Client Side JavaScript Debugging</title>
  <link>http://dflying.dflying.net/1/archive/115_atlas_client_side_javascript_debugging.html</link>
  <dc:description>&lt;p&gt;&lt;b&gt;Introduction&lt;/b&gt;&lt;/p&gt;&lt;p&gt;It is much more challenging to write Atlas code than C# code, for there’s no compile time check or IntelliSence in coding, and you have to trace the traffic between the client and server in runtime. Still there’s no powerful IDE/debugger for JavaScript.&lt;/p&gt;&lt;p&gt;I’ve been working on Atlas for about half a year, and in this post I want to share some of my knowledge and experiences about Atlas debugging issues to make life easier.&lt;/p&gt;&lt;br/&gt;&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;http://dflying.dflying.net/plugins/plogeshi/styles/plogeshi.css&quot; /&gt;&lt;p&gt;&lt;b&gt;Capturing HTTP Traffic&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;In AJAX applications, it is very useful to monitor the HTTP traffic going back and forth between the server and the client. Thus you can find what exactly I sent to server and what the server returned to me. Basically this is often used in verify the data send by XMLHttpRequest.&lt;/p&gt;
&lt;p&gt;The tool I recommend is Fiddler (downloaded at &lt;a href=&quot;http://www.fiddlertool.com/fiddler/&quot;&gt;http://www.fiddlertool.com/fiddler/&lt;/a&gt; ), which is a HTTP Debugging Proxy which logs all HTTP traffic between your computer and the Internet. Fiddler allows you to inspect all HTTP Traffic (including headers, cookies, and the message contents), set breakpoints, and &amp;quot;fiddle&amp;quot; with incoming or outgoing data. Fiddler is designed to be much simpler than using NetMon or Achilles, and includes a simple but powerful JScript.NET event-based scripting subsystem. It supports Internet Explorer and other browsers.&lt;/p&gt;
&lt;p&gt;Fiddler screen shot:&lt;br /&gt;
&lt;a class=&quot;nodecoration&quot; id=&quot;res_132&quot; href=&quot;http://www.dflying.net/resserver.php?blogId=1&amp;resource=atlasdebugging1.JPG&quot; type=&quot;image/jpeg&quot;&gt;&lt;img class=&quot;res_image_medium&quot; style=&quot;MARGIN: 5px&quot; src=&quot;http://www.dflying.net/resserver.php?blogId=1&amp;resource=atlasdebugging1.JPG&amp;mode=medium&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Using Atlas Debug Helper Class&lt;/b&gt;&lt;br /&gt;
Atlas framework will define a Debug Helper Class for you if you are running your Atlas application in debug mode. The Debug Helper Class is accessible as a global object: debug. Using methods of the debug class, you can dump a runtime JavaScript object (display objects in readable form at the end of the page), show trace messages, use assertions, and break into the debugger. If the Visual Studio Script Debugger (see below) is attached to Internet Explorer, you will also see the trace messages in the Output window.&lt;/p&gt;
&lt;p&gt;The debug class provides following methods:&lt;/p&gt;
&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;debug.assert(condition, message, displayCaller) &lt;br /&gt;
Asserts that the &lt;b&gt;condition&lt;/b&gt; parameter is true. If &lt;b&gt;condition&lt;/b&gt; is false, the method displays a message box with the text from &lt;b&gt;message&lt;/b&gt;. If &lt;b&gt;displayCaller&lt;/b&gt; is true, the method also displays information about the caller. &lt;/li&gt;
&lt;li&gt;debug.clearTrace() &lt;br /&gt;
Erases the trace output. &lt;/li&gt;
&lt;li&gt;debug.dump(object, name, recursive, indentationPadding) &lt;br /&gt;
Displays &lt;b&gt;object&lt;/b&gt; in readable form at the end of the page. The &lt;b&gt;name&lt;/b&gt; value is used as a label for the object dump. If &lt;b&gt;recursive&lt;/b&gt; is true, objects inside of object are shown recursively. The &lt;b&gt;indentationPadding&lt;/b&gt; value is a string that is inserted at the beginning of each line of output. &lt;/li&gt;
&lt;li&gt;debug.fail(message) &lt;br /&gt;
Breaks into the debugger (Internet Explorer only). &lt;/li&gt;
&lt;li&gt;debug.trace(text) &lt;br /&gt;
Writes the &lt;b&gt;text&lt;/b&gt; argument to the trace output.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Here’s a piece of demo code copied from Atlas online document shows debug.dump():&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; o = &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    colors: &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        red: &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;255&lt;/span&gt;, &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;, &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;,
        green: &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;, &lt;span class=&quot;nu0&quot;&gt;255&lt;/span&gt;, &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;,
        blue: &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;, &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;, &lt;span class=&quot;nu0&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;,
    width: &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt;,
    title: &lt;span class=&quot;st0&quot;&gt;&#039;debugging with &amp;quot;Atlas&amp;quot;&#039;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;;
&amp;nbsp;
debug.&lt;span class=&quot;me1&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&quot;output trace messages&quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
debug.&lt;span class=&quot;me1&quot;&gt;dump&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;o, &lt;span class=&quot;st0&quot;&gt;&#039;object name&#039;&lt;/span&gt;, &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;, &lt;span class=&quot;st0&quot;&gt;&#039;... &#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;Output:&lt;/p&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
output trace messages
... object name {Object}
... +colors {Object}
... ++red {Array}
... +++[0]: 255
... +++[1]: 0
... +++[2]: 0
... +++0: 255
... +++1: 0
... +++2: 0
... ++green {Array}
... +++[0]: 0
... +++[1]: 255
... +++[2]: 0
... +++0: 0
... +++1: 255
... +++2: 0
... ++blue {Array}
... +++[0]: 0
... +++[1]: 0
... +++[2]: 255
... +++0: 0
... +++1: 0
... +++2: 255
... +width: 600
... +title: debugging with &quot;Atlas&quot;
&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;&lt;b&gt;Attaching the Visual Studio Script Debugger to Internet Explorer&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;You can use the Visual Studio Script Debugger to debug your JavaScript code, thought it is far from perfect and full of bugs, it is still the best JavaScript debugger at this moment I think. To use Visual Studio Script Debugger, you have to install Visual Studio 2005 and Internet Explorer 6.0 or above.&lt;/p&gt;
&lt;p&gt;Internet Explorer normally ignores any problems it encounters in JavaScript. To enable debugging, from the &lt;b&gt;Tools&lt;/b&gt; menu, select &lt;b&gt;Internet Options&lt;/b&gt;. In the &lt;b&gt;Advanced&lt;/b&gt; tab, clear the &lt;b&gt;Disable Script Debugging (Internet Explorer)&lt;/b&gt; and &lt;b&gt;Disable Script Debugging (Other)&lt;/b&gt; check boxes, and select the &lt;b&gt;Display a notification about every script error&lt;/b&gt;. To support debugging, the option settings should look as follows:&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;res_image&quot; style=&quot;MARGIN: 5px&quot; src=&quot;http://www.dflying.net/resserver.php?blogId=1&amp;resource=atlasdebugging2.JPG&quot; /&gt;&lt;/p&gt;
&lt;p&gt;To debug client code, you must attach a debugger to Internet Explorer. When you start your application for debugging from Visual Studio using F5 or the Start Debugging command on the Debug menu, the debugger is attached automatically.&lt;/p&gt;
&lt;p&gt;Alternatively, you can attach the Visual Studio debugger to Internet Explorer after the application is already running. To do so, from &lt;b&gt;View&lt;/b&gt; menu of Internet Explorer, expend &lt;b&gt;Script Debugger&lt;/b&gt; menu item, select &lt;b&gt;Open&lt;/b&gt;.&lt;br /&gt;
&lt;img class=&quot;res_image&quot; style=&quot;MARGIN: 5px&quot; src=&quot;http://www.dflying.net/resserver.php?blogId=1&amp;resource=atlasdebugging3.JPG&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Visual Studio Script Debugger Bugs and Tricks&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;When debugging &amp;quot;Atlas&amp;quot; applications, be aware of the following issues and workarounds:&lt;/p&gt;
&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;After the Visual Studio debugger is attached to Internet Explorer, you can see the &amp;quot;Atlas&amp;quot; client library will appear as a resource beginning with WebResource.axd?..., which the server generates dynamically from the Microsoft.Web.Atlas.dll assembly. A known bug in Visual Studio might initially prevent you from opening the file. If Visual Studio displays an error message to that effect, or if it ignores a double click on the file name, select and open a different JavaScript file first, and then try again (Note it is a big file and may need a while to open it).&lt;/li&gt;
&lt;li&gt;Visual Studio does not allow you to set breakpoints in JavaScript code inside &amp;lt;script&amp;gt; elements in an ASP.NET Web page until the debugger has stepped into JavaScript code on that page. To work around this issue, set the breakpoint on the function the call comes from, and step into the code on the aspx page. After the debugger has stopped on a line of JavaScript code in an aspx file, you can set breakpoints normally. Another way to get the debugger to recognize scripts in an aspx file, is to create a method in the aspx file that calls debug.fail(). When you call this method, the debugger will stop on the call to debug.fail() and let you set breakpoints elsewhere. A third alternative is to place all your custom code in external JavaScript files. &lt;/li&gt;
&lt;li&gt;Visual Studio allows you to set breakpoints on the first line of a regular JavaScript function, but not on the first line of anonymous methods, which &amp;quot;Atlas&amp;quot; uses. If an anonymous method contains only one line of code, or if you must set a breakpoint on the first line of an anonymous method, insert a dummy line of code and then set the breakpoint on the second line of the method.&lt;/li&gt;
&lt;li&gt;When you check the variables in debugging, you may find it may show you the wrong value, check following screen shot.&lt;br /&gt;
&lt;img class=&quot;res_image&quot; style=&quot;MARGIN: 5px&quot; src=&quot;http://www.dflying.net/resserver.php?blogId=1&amp;resource=atlasdebugging4.JPG&quot; /&gt;&lt;br /&gt;
You can get rid of it by highlighting the whole object and property syntax, then move your cursor on the highlighted content. Everything’s ok in the following screen shot.&lt;br /&gt;
&lt;img class=&quot;res_image&quot; style=&quot;MARGIN: 5px&quot; src=&quot;http://www.dflying.net/resserver.php?blogId=1&amp;resource=atlasdebugging5.JPG&quot; /&gt;&lt;/li&gt;
&lt;li&gt;Sometimes you can not find the &lt;b&gt;Script Debugger&lt;/b&gt; menu item in Internet Explorer, just close current window and reopen a new one, you may find the &lt;b&gt;Script Debugger&lt;/b&gt; menu again.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&lt;b&gt;References&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;MARGIN-TOP: 0in&quot; type=&quot;1&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://atlas.asp.net/docs/Overview/debug.aspx&quot;&gt;http://atlas.asp.net/docs/Overview/debug.aspx&lt;/a&gt; &lt;/li&gt;
&lt;/ol&gt;</dc:description>
    <dc:subject>Atlas</dc:subject>
    <dc:date>2006-04-09T20:36:40Z</dc:date>
    <dc:creator>Dflying</dc:creator>
 </item>
 </rdf:RDF>