<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Aaron Li's Blog</title>
        <link>http://geekswithblogs.net/AaronLi/Default.aspx</link>
        <description>Aaron Li's Code Example Library</description>
        <language>en-US</language>
        <copyright>Aaron Li</copyright>
        <managingEditor>aaronli48@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Aaron Li's Blog</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/AaronLi/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>SQL Server: Retrieve Top n Records Per Group</title>
            <link>http://geekswithblogs.net/AaronLi/archive/2008/02/21/119878.aspx</link>
            <description>My senario: Get latest NumberOfPosts posts for every discussion which meet myCondition&lt;br /&gt;
&lt;br /&gt;
        SELECT &lt;br /&gt;
            DiscussionTopPosts.PostID&lt;br /&gt;
        From (&lt;br /&gt;
            SELECT  p.DiscussionID, p.PostID, ROW_NUMBER() OVER (PARTITION BY p.DiscussionID ORDER BY p.DateCreated DESC) AS RowNumber&lt;br /&gt;
            FROM Posts p&lt;br /&gt;
            WHERE &lt;br /&gt;
                p.DiscussionID IN&lt;br /&gt;
                (&lt;br /&gt;
                SELECT d.DiscussionID &lt;br /&gt;
                FROM Discussions d&lt;br /&gt;
                Where myCondition&lt;br /&gt;
                )&lt;br /&gt;
            AND p.IsActive = 1 &lt;br /&gt;
            GROUP BY p.DiscussionID, p.PostID, p.DateCreated&lt;br /&gt;
            ) &lt;br /&gt;
            DiscussionTopPosts&lt;br /&gt;
        WHERE&lt;br /&gt;
          DiscussionTopPosts.RowNumber &amp;lt;= @NumberOfPosts&lt;br /&gt;
&lt;br /&gt;
for more reference, see http://weblogs.sqlteam.com/jeffs/archive/2007/03/30/More-SQL-Server-2005-Solutions.aspx&lt;br /&gt;
&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=119878"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=119878" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AaronLi/aggbug/119878.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Aaron Li</dc:creator>
            <guid>http://geekswithblogs.net/AaronLi/archive/2008/02/21/119878.aspx</guid>
            <pubDate>Thu, 21 Feb 2008 23:16:08 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AaronLi/comments/119878.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AaronLi/archive/2008/02/21/119878.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AaronLi/comments/commentRss/119878.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AaronLi/services/trackbacks/119878.aspx</trackback:ping>
        </item>
        <item>
            <title>Coding for Different Browsers </title>
            <link>http://geekswithblogs.net/AaronLi/archive/2008/02/13/119549.aspx</link>
            <description>--- C# ---  &lt;br /&gt;
&lt;br /&gt;
  string vBrowser = System.Web.HttpContext.Current.Request.Browser.Browser.ToLower();&lt;br /&gt;
    // or string vBrowser = Request.Browser.Browser.ToLower();  //for local page&lt;br /&gt;
&lt;br /&gt;
            switch (vBrowser)&lt;br /&gt;
            {&lt;br /&gt;
                case "firefox":&lt;br /&gt;
                    do something ...&lt;br /&gt;
                    break;&lt;br /&gt;
                case "ie":&lt;br /&gt;
                    do something ...&lt;br /&gt;
                    break;&lt;br /&gt;
                case "safari":&lt;br /&gt;
                    do something ...&lt;br /&gt;
                    break;&lt;br /&gt;
                default:&lt;br /&gt;
                    do something ...&lt;br /&gt;
                    break;&lt;br /&gt;
            }&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=119549"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=119549" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AaronLi/aggbug/119549.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Aaron Li</dc:creator>
            <guid>http://geekswithblogs.net/AaronLi/archive/2008/02/13/119549.aspx</guid>
            <pubDate>Wed, 13 Feb 2008 21:50:36 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AaronLi/comments/119549.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AaronLi/archive/2008/02/13/119549.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/AaronLi/comments/commentRss/119549.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AaronLi/services/trackbacks/119549.aspx</trackback:ping>
        </item>
        <item>
            <title>Find a Control When Multi-level Master Pages are Used</title>
            <link>http://geekswithblogs.net/AaronLi/archive/2008/02/13/119543.aspx</link>
            <description>When a page is using a master page, and that master page is using another master page, and so on, then how to find a control on the page? &lt;br /&gt;
&lt;br /&gt;
For example, my pages could have three-level master pages. Let's call the third-level master page Master3, which contains a ContentPlaceHolder called PlaceHolder3; Master3's master page is Master2, which contains PlaceHolder2; and Master1, PlaceHolder1. I want to find the panel "pnlTest" on the content page.&lt;br /&gt;
&lt;br /&gt;
Here is my function.&lt;br /&gt;
&lt;br /&gt;
    public bool FindPageControl()&lt;br /&gt;
    {&lt;br /&gt;
        System.Web.UI.Page oPage = HttpContext.Current.Handler as System.Web.UI.Page;&lt;br /&gt;
        System.Web.UI.MasterPage oMasterPage = null;&lt;br /&gt;
        System.Web.UI.WebControls.ContentPlaceHolder oPlaceHolder = null;&lt;br /&gt;
        System.Web.UI.WebControls.Panel oPnlTest = null;&lt;br /&gt;
        if (oPage.Master.Master != null)&lt;br /&gt;
        {&lt;br /&gt;
            if (oPage.Master.Master.Master != null)&lt;br /&gt;
            {&lt;br /&gt;
                oMasterPage = (System.Web.UI.MasterPage)oPage.Master.Master.Master;&lt;br /&gt;
                oPlaceHolder = (System.Web.UI.WebControls.ContentPlaceHolder)oMasterPage.FindControl("PlaceHolder1").FindControl("PlaceHolder2").FindControl("PlaceHolder3"); //to make the logic strict, better find the control step by step&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                oMasterPage = (System.Web.UI.MasterPage)oPage.Master.Master;&lt;br /&gt;
                oPlaceHolder = (System.Web.UI.WebControls.ContentPlaceHolder)oMasterPage.FindControl("PlaceHolder1").FindControl("PlaceHolder2");&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            oMasterPage = (System.Web.UI.MasterPage)oPage.Master;&lt;br /&gt;
            if (oMasterPage != null)&lt;br /&gt;
                oPlaceHolder = (System.Web.UI.WebControls.ContentPlaceHolder)oMasterPage.FindControl("PlaceHolder1");&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (oPlaceHolder != null)&lt;br /&gt;
            oPnlTest = (System.Web.UI.WebControls.Panel)oPlaceHolder.FindControl("pnlTest");&lt;br /&gt;
        else&lt;br /&gt;
            oPnlTest = (System.Web.UI.WebControls.Panel)oPage.FindControl("pnlTest");&lt;br /&gt;
&lt;br /&gt;
        if (oPnlTest != null)&lt;br /&gt;
            return true;&lt;br /&gt;
&lt;br /&gt;
        return false;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
By this example, it is not difficult to figure out how to find a control on any level master page or content page.&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=119543"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=119543" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AaronLi/aggbug/119543.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Aaron Li</dc:creator>
            <guid>http://geekswithblogs.net/AaronLi/archive/2008/02/13/119543.aspx</guid>
            <pubDate>Wed, 13 Feb 2008 18:33:41 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AaronLi/comments/119543.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AaronLi/archive/2008/02/13/119543.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AaronLi/comments/commentRss/119543.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AaronLi/services/trackbacks/119543.aspx</trackback:ping>
        </item>
        <item>
            <title>Named Anchor in IE and Firefox</title>
            <link>http://geekswithblogs.net/AaronLi/archive/2008/01/25/118912.aspx</link>
            <description>Generally, the following code can lead the hyper link to a named anchor&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a name="aMyGoTo"&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href="#aMyGoTo"&amp;gt;go to the defined point&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, in IE, sometimes it seems the named anchor doesn't work. Here is the solution.&lt;br /&gt;
&lt;br /&gt;
To replace &lt;br /&gt;
&amp;lt;a name="aMyGoTo"&amp;gt;&amp;lt;/a&amp;gt; &lt;br /&gt;
with &lt;br /&gt;
&amp;lt;span style="position:absolute;"&amp;gt;&amp;lt;a id="aMyGoTo"&amp;gt;&amp;amp;nbsp;&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the case a div or other tag  with style sheet coming right after the &amp;lt;span&amp;gt;named anchor&amp;lt;/span&amp;gt;, a more secure way is put a &amp;lt;div&amp;gt; tage outside of the span.   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;span style="position:absolute;"&amp;gt;&amp;lt;a id="aMyGoTo"&amp;gt;&amp;amp;nbsp;&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=118912"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=118912" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AaronLi/aggbug/118912.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Aaron Li</dc:creator>
            <guid>http://geekswithblogs.net/AaronLi/archive/2008/01/25/118912.aspx</guid>
            <pubDate>Fri, 25 Jan 2008 18:34:49 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AaronLi/comments/118912.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AaronLi/archive/2008/01/25/118912.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/AaronLi/comments/commentRss/118912.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AaronLi/services/trackbacks/118912.aspx</trackback:ping>
        </item>
        <item>
            <title>Set Focus On Page Load</title>
            <link>http://geekswithblogs.net/AaronLi/archive/2007/12/06/117451.aspx</link>
            <description>Scenario:&lt;br /&gt;
&lt;br /&gt;
I have a masterpage, and there is a search text box on it. For most pages, when the page is loaded, I want to set focus on the search box; for other pages, to a control on that page.&lt;br /&gt;
&lt;br /&gt;
Rather than set focus on every page, I create a pulic function in a class. For those pages the focus is set to a specific control, this function is called. &lt;br /&gt;
&lt;br /&gt;
    public void SetFocus(string vControl)&lt;br /&gt;
    {&lt;br /&gt;
        string strJS;&lt;br /&gt;
        strJS = "&amp;lt;script&amp;gt;" +&lt;br /&gt;
                    "var o = document.getElementById('" + vControl + "'); " +&lt;br /&gt;
                    "if((o != undefined) &amp;amp;&amp;amp; (o != null)){ " +&lt;br /&gt;
                    "if(window.attachEvent) " +&lt;br /&gt;
                        "window.attachEvent('onload',new function(){o.focus();}); " +&lt;br /&gt;
                    "else " +&lt;br /&gt;
                        "window.addEventListener('load',new function(){o.focus();},true); }" +&lt;br /&gt;
                "&amp;lt;/script&amp;gt;";&lt;br /&gt;
        ((Page)System.Web.HttpContext.Current.Handler).ClientScript.RegisterStartupScript(this.GetType(), "CSSetFocus", strJS);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Meanwhile, on the master page, I have the following javascript code right after the search box control. The position of this piece of code is important. If it is before the search box control, getElementById() gets nothing; if it is located somewhere after the javascript code generated by SetFocus(), then the focus always stays on the search box control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
    var o = document.getElementById('&amp;lt;%=txtSearch.ClientID%&amp;gt;'+'_Input');&lt;br /&gt;
    if((o != undefined) &amp;amp;&amp;amp; (o != null)) o.focus();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course, .NET can set focus by this.TextBox1.Focus(); however, if multiple master pages are used, I prefer using my own javascript code to control when and where the focus is set.&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117451"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117451" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AaronLi/aggbug/117451.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Aaron Li</dc:creator>
            <guid>http://geekswithblogs.net/AaronLi/archive/2007/12/06/117451.aspx</guid>
            <pubDate>Fri, 07 Dec 2007 01:23:04 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AaronLi/comments/117451.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AaronLi/archive/2007/12/06/117451.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AaronLi/comments/commentRss/117451.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AaronLi/services/trackbacks/117451.aspx</trackback:ping>
        </item>
        <item>
            <title>Optional Parameter and Overridden Function</title>
            <link>http://geekswithblogs.net/AaronLi/archive/2007/11/20/117005.aspx</link>
            <description>C# doesn't support optional arguments/parameters. It's done by overriding the function. &lt;br /&gt;
Optional arguments/parameters are used in VB.NET, and they must be listed last and must have a default value.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117005"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117005" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AaronLi/aggbug/117005.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Aaron Li</dc:creator>
            <guid>http://geekswithblogs.net/AaronLi/archive/2007/11/20/117005.aspx</guid>
            <pubDate>Tue, 20 Nov 2007 21:48:45 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AaronLi/comments/117005.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AaronLi/archive/2007/11/20/117005.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AaronLi/comments/commentRss/117005.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AaronLi/services/trackbacks/117005.aspx</trackback:ping>
        </item>
        <item>
            <title>Link and Target</title>
            <link>http://geekswithblogs.net/AaronLi/archive/2007/10/01/115761.aspx</link>
            <description>Today, I tried to control a html link with a tag and a function (in c#) like the following, &lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;a href="&amp;lt;%#GetTopLink(Eval(FN_URL).ToString())%&amp;gt;"&amp;gt;&amp;lt;%#Eval(FN_NAME)%&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    protected string GetTopLink(string vUrl)&lt;br /&gt;
    {&lt;br /&gt;
        if (&amp;lt;true&amp;gt;)&lt;br /&gt;
            return vUrl;&lt;br /&gt;
        else&lt;br /&gt;
            return "javascript: window.open('" + vUrl + "','new'); void(0);";&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
It doesn't seems it's a very smart way. A reminding to myself,&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;a href="http://www.microsoft.com" target="_blank"&amp;gt;go&amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;a href="http://www.microsoft.com" target="_self"&amp;gt;go&amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;a href="javascript: window.open('http://www.microsoft.com', '_blank'); void(0);"&amp;gt;go&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115761"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115761" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AaronLi/aggbug/115761.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Aaron Li</dc:creator>
            <guid>http://geekswithblogs.net/AaronLi/archive/2007/10/01/115761.aspx</guid>
            <pubDate>Mon, 01 Oct 2007 23:44:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AaronLi/comments/115761.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AaronLi/archive/2007/10/01/115761.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AaronLi/comments/commentRss/115761.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AaronLi/services/trackbacks/115761.aspx</trackback:ping>
        </item>
        <item>
            <title>Make your own Javascript trim() function</title>
            <link>http://geekswithblogs.net/AaronLi/archive/2007/09/05/115174.aspx</link>
            <description>add this single line into Javascript portion,&lt;br /&gt;
&lt;br /&gt;
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); };&lt;br /&gt;
&lt;br /&gt;
then test with&lt;br /&gt;
&lt;br /&gt;
var mystring="test   ";&lt;br /&gt;
alert(mystring.trim());&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115174"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115174" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AaronLi/aggbug/115174.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Aaron Li</dc:creator>
            <guid>http://geekswithblogs.net/AaronLi/archive/2007/09/05/115174.aspx</guid>
            <pubDate>Thu, 06 Sep 2007 01:19:35 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AaronLi/comments/115174.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AaronLi/archive/2007/09/05/115174.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AaronLi/comments/commentRss/115174.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AaronLi/services/trackbacks/115174.aspx</trackback:ping>
        </item>
        <item>
            <title>ClientScript.GetPostBackClientHyperlink() and __doPostBack()</title>
            <link>http://geekswithblogs.net/AaronLi/archive/2007/08/10/114543.aspx</link>
            <description>&lt;p&gt;&lt;font face="Arial"&gt;Senario 1: there is a databound control on the page, for example, a Repeater, and for every row, there is a Delete button/link. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Senario 2: on the same page, there is a Delete All button/link. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;In Senario 1, we want to know which row to delete after the postback.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;In Senario 2, if we use asp button and related event handler, generally the process is Page_Load() where databound happens; then OnClick() event handler where to delete; after that we have to redo the databound which cause an extra round trip to database; as a result, we want to process the deletion right away when Page_Load() is called, then bind data, so only bind data to the databound control for once.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;ClientScript.GetPostBackClientHyperlink()&lt;/strong&gt; or &lt;strong&gt;__doPostBack()&lt;/strong&gt; will help us with these kinds of problems.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;ClientScript.GetPostBackClientHyperlink() and __doPostBack() do the same thing, the difference is ClientScript.GetPostBackClientHyperlink() speaks server side language, which means it can recognize server side controls; however, __doPostBack() is javascript.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Let's see how they perform the same function. Suppose &lt;/font&gt;&lt;font face="Arial"&gt;there is a Literal control on the page. Later we'll explain what this control is for.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&amp;lt;asp:Literal ID="ltrDeleteSingle" runat="server" EnableViewState="false"/&amp;gt;        &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;in the code behind, set &lt;br /&gt;
string s = ClientScript.GetPostBackClientHyperlink(ltrDeleteSingle, "150");&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;guess what's the value of s? Here it is,&lt;br /&gt;
s="javascript:__doPostBack('ctl00$ctl00$ltrDeleteSingle','150')" &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Perhaps you have a diffferent string rather than 'ctl00$ctl00$ltrDeleteSingle' on your page, anyway, it is the ltrDeleteSingle's UniqueID on client side.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Let's go back to our page,&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;In the HTML portion&lt;/strong&gt;,&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&amp;lt;asp:Repeater ID="rptUserList" runat="server" EnableViewState="false"&amp;gt;&lt;br /&gt;
    &amp;lt;ItemTemplate&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;a href="javascript:__doPostBack('&amp;lt;%=ltrDeleteSingle.UniqueID%&amp;gt;','&amp;lt;%#Eval("UserID")%&amp;gt;')"&amp;gt;Delete&amp;lt;/a&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;                &amp;lt;/ItemTemplate&amp;gt;&lt;br /&gt;
        &amp;lt;/asp:Repeater&amp;gt;&lt;br /&gt;
&amp;lt;a href="javascript:__doPostBack('&amp;lt;%=ltrDeleteAll.UniqueID%&amp;gt;','')"&amp;gt;Delete All&amp;lt;/a&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&amp;lt;asp:Literal ID="ltrDeleteSingle" runat="server" EnableViewState="false"/&amp;gt;        &lt;br /&gt;
&amp;lt;asp:Literal ID="ltrDeleteAll" runat="server" EnableViewState="false"/&amp;gt;        &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Of course, we can replace javascript:__doPostBack() with&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&amp;lt;a href="&amp;lt;%#ClientScript.GetPostBackClientHyperlink(ltrDeleteSingle, Eval("UserID"))%&amp;gt;"&amp;gt;Delete&amp;lt;/a&amp;gt;                &lt;br /&gt;
&amp;lt;a href="&amp;lt;%#ClientScript.GetPostBackClientHyperlink(ltrDeleteSingle, ""))%&amp;gt;"&amp;gt;Delete All&amp;lt;/a&amp;gt;                &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;In the c# portion&lt;/strong&gt;,&lt;/font&gt;&lt;/p&gt;
&lt;font face="Arial"&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;protected void Page_Load(object sender, EventArgs e)&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;{&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in"&gt;if (IsPostBack)&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in"&gt;{&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in"&gt;if (!string.IsNullOrEmpty(Request.Form["__EVENTTARGET"]))&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in"&gt;{&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.25in"&gt;if (Request.Form["__EVENTTARGET"].Equals(ltrDeleteSingle.UniqueID))&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.25in"&gt;{&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;if (!int.TryParse(Request.Form["__EVENTARGUMENT"], out UserID))&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.75in"&gt;&amp;lt;Display error&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;else&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.75in"&gt;ToDelete(UserID);&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.75in"&gt;}&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.25in"&gt;else if (Request.Form["__EVENTTARGET"].Equals(ltrDeleteAll.UniqueID))&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.25in"&gt;{&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in"&gt;ToDelete(0);&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.25in"&gt;}&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in"&gt;}&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in"&gt;}&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in"&gt;ToBindData();&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;}&lt;/div&gt;
&lt;p dir="ltr" style="MARGIN-RIGHT: 0px"&gt; &lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Shortly, ClientScript.GetPostBackClientHyperlink() and __doPostBack() give HTML controls the ability to fire postback. By anlyzing Request.Form["__EVENTTARGET"], different actions can be taken and performance could be improved.&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;/font&gt;&lt;font face="Arial"&gt;We find, ltrDeleteSingle and ltrDeleteAll play the role of indicator so that the code knows who causes the postback then decides what to do. For those controls with AutoPostBack property, for example, dropdownlist or button, if set AutoPostBack =true, the control's UniqueID will be automatically passed in the form hidden field __EVENTTARGET.&lt;/font&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114543"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114543" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AaronLi/aggbug/114543.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Aaron Li</dc:creator>
            <guid>http://geekswithblogs.net/AaronLi/archive/2007/08/10/114543.aspx</guid>
            <pubDate>Fri, 10 Aug 2007 05:51:17 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AaronLi/comments/114543.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AaronLi/archive/2007/08/10/114543.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AaronLi/comments/commentRss/114543.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AaronLi/services/trackbacks/114543.aspx</trackback:ping>
        </item>
        <item>
            <title>Checkbox Counter and JavaScript</title>
            <link>http://geekswithblogs.net/AaronLi/archive/2007/06/17/113276.aspx</link>
            <description>&lt;div&gt;&lt;strong&gt;Scenario:&lt;/strong&gt; &lt;/div&gt;
&lt;div&gt;I have a repeater with people’s name listed. Next to every name, there is a checkbox used to select people. Every time, only 2 people can be selected.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;HTML portion,&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&amp;lt;asp:Repeater &lt;span&gt;ID="Repeater1" runat="server" EnableViewState = "false"&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    &amp;lt;ItemTemplate&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;        &amp;lt;asp:CheckBox ID="CheckBox1" runat="server" onclick="CheckedChanged(this.checked)" /&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;        &amp;lt;%#Eval("Name")%&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    &amp;lt;/ItemTemplate&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;/asp:Repeater&amp;gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;input &lt;span&gt;id="TotalChecked" type="hidden" value="0"/&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Javascript &lt;/strong&gt;is used to count how many people have been selected.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;function getObj(name)&lt;/div&gt;
&lt;div&gt;{&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    if (document.getElementById) // test if browser supports document.getElementById&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;        this.obj = document.getElementById(name);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    else if (document.all) // test if browser supports document.all&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;        this.obj = document.all[name];&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    else if (document.layers) // test if browser supports document.layers&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;        this.obj = document.layers[name];&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;}&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;function CheckedChanged(IsChecked)&lt;/div&gt;
&lt;div&gt;{&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    var objTotalChecked = new getObj('TotalChecked');&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    var intTotalChecked = eval(objTotalChecked.obj.value);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    if (IsChecked)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;        objTotalChecked.obj.value = intTotalChecked + 1; &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    else&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;        objTotalChecked.obj.value = intTotalChecked - 1; &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;    if (objTotalChecked.obj.value &amp;gt;= 2 )&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;        alert("You can only talk to 2 people. Now you have selected " + objTotalChecked.obj.value +".");&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;}&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;In addition, when the page or part of the page is submitted, on &lt;strong&gt;server side&lt;/strong&gt;, I would validate the total number of selected people. &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113276"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113276" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AaronLi/aggbug/113276.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Aaron Li</dc:creator>
            <guid>http://geekswithblogs.net/AaronLi/archive/2007/06/17/113276.aspx</guid>
            <pubDate>Sun, 17 Jun 2007 23:59:30 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AaronLi/comments/113276.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AaronLi/archive/2007/06/17/113276.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/AaronLi/comments/commentRss/113276.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AaronLi/services/trackbacks/113276.aspx</trackback:ping>
        </item>
        <item>
            <title>Page Life Cycle In ASP.NET 2.0</title>
            <link>http://geekswithblogs.net/AaronLi/archive/2007/05/27/112788.aspx</link>
            <description>&lt;div&gt;&lt;font size="3"&gt;Page Life Cycle In ASP.NET 2.0&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;table cellspacing="0" cellpadding="0" width="636" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="100"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Stage&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="123"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Event&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="212"&gt;
            &lt;div&gt;&lt;font size="2"&gt;What To Do&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="201"&gt;
            &lt;div&gt;&lt;font size="2"&gt;What Done&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="100"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Initialization&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="123"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Page PreInit&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="212"&gt;
            &lt;div&gt;&lt;font size="2"&gt;- change themes, master pages&lt;/font&gt;&lt;/div&gt;
            &lt;div&gt;&lt;font size="2"&gt;- access properties for a profile&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="201"&gt;
            &lt;div&gt;&lt;font size="2"&gt;master pages, themes, etc. are applied&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="100"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="123"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Control Init&lt;/font&gt;&lt;/div&gt;
            &lt;div&gt;&lt;font size="2"&gt;Page Init&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="212"&gt;
            &lt;div&gt;&lt;font size="2"&gt;- read or initialize properties of controls in the control hierarchy.&lt;/font&gt;&lt;/div&gt;
            &lt;div&gt;&lt;font size="2"&gt;- add dynamic controls that need to utilize view state&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="201"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Controls are initialized with declarative properties.&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="100"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="123"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Page InitComplete&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="212"&gt;
            &lt;div&gt;&lt;font size="2"&gt;- access controls on the page&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="201"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Begin to track view state changes &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="100"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Page Load&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="123"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Page PreLoad&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="212"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="201"&gt;
            &lt;div&gt;&lt;font size="2"&gt;View state data saved from the previous page are populated to the controls&lt;/font&gt;&lt;/div&gt;
            &lt;div&gt;&lt;font size="2"&gt;Postback data are restored&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="100"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="123"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Page Load&lt;/font&gt;&lt;/div&gt;
            &lt;div&gt;&lt;font size="2"&gt;Control Load&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="212"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="201"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="100"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Raise Postback Event&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="123"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="212"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="201"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Control events are handled&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="100"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="123"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Page LoadComplete&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="212"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="201"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="100"&gt;
            &lt;div&gt;&lt;font size="2"&gt;PreRender&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="123"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Page PreRender&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="212"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="201"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="100"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="123"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Page PreRenderComplete&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="212"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="201"&gt;
            &lt;div&gt;&lt;font size="2"&gt;All controls have been added to the page and the page is ready to be rendered&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="100"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Save View State&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="123"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="212"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="201"&gt;
            &lt;div&gt;&lt;font size="2"&gt;View state and control state have been saved&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="100"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="123"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Page SaveStateComplete&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="212"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="201"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="100"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Render&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="123"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="212"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="201"&gt;
            &lt;div&gt;&lt;font size="2"&gt;HtmlTextWriter is initialized and the page is rendered to the browser&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="100"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Unload&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="123"&gt;
            &lt;div&gt;&lt;font size="2"&gt;Control Unload&lt;/font&gt;&lt;/div&gt;
            &lt;div&gt;&lt;font size="2"&gt;Page Unload&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="212"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="201"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="100"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="123"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="212"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="201"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="100"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="123"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="212"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="201"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="100"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="123"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="212"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="201"&gt;
            &lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112788"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112788" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AaronLi/aggbug/112788.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Aaron Li</dc:creator>
            <guid>http://geekswithblogs.net/AaronLi/archive/2007/05/27/112788.aspx</guid>
            <pubDate>Sun, 27 May 2007 22:16:07 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AaronLi/comments/112788.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AaronLi/archive/2007/05/27/112788.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/AaronLi/comments/commentRss/112788.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AaronLi/services/trackbacks/112788.aspx</trackback:ping>
        </item>
        <item>
            <title>View State and TextBoxes, CheckBoxes, DropDownLists </title>
            <link>http://geekswithblogs.net/AaronLi/archive/2007/05/20/112615.aspx</link>
            <description>&lt;div&gt;&lt;strong&gt;&lt;font size="3"&gt;View State and TextBoxes, CheckBoxes, DropDownLists&lt;/font&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;There is a common misunderstanding among developers that view state is somehow responsible for having TextBoxes, CheckBoxes, DropDownLists, and other Web controls remember their values across postback. I was one of them.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;This is not the case, because the values are identified via posted back form field values, and assigned in the LoadPostData&lt;code&gt;()&lt;/code&gt; method for those controls that implement IPostBackDataHandler. See &lt;span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms972976.aspx"&gt;Scott Mitchell’s article &lt;/a&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/span&gt;for detail.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;In the page lifecycle, LoadPostBackData happens after LoadViewState stage. They are independent. The value of a textbox is restored in LoadPostBackData stage. If the view state for this textbox is enabled, then what happens in LoadViewState? Yes, the textbox could got a value, but that could be the wrong one, because the information in the view state represents the state before submission. For example, if the textbox’s value is “Hello my world” before you take any action to the page; at this moment, in the viewstate, it is “Hello my world”. Then from the browser, you change it to “Hello your world”, and submit the page. A new trip of the page life cycle happens. As we have known now, LoadViewState happens before LoadPostBackData. Guess what is the textbox’s value in the LoadViewState stage gotten from view state? It is “Hello my world” rather than “Hello your world”. Fortunately, LoadViewState follows, so that you can get the correct “Hello your world”. Untill the moment before the control is rendered, the viewstate is updated to “Hello your world”. Have you seen enabling the ViewState for such a control only wastes the resource if your application cares performance a lot?&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Here we only talk about changing the value for this textbox. If we need to change it’s BackColor, for example, then viewstate is useful; or use other method to remember the changed BackColor if ViewState is not enabled.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Here is the list of controls which could be form fields meanwhile implement IpostBackDataHandler. Welcome to let me know if I miss any.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;CheckBox.&lt;/div&gt;
&lt;div&gt;CheckBoxList&lt;/div&gt;
&lt;div&gt;DropDownList&lt;/div&gt;
&lt;div&gt;ImageButton&lt;/div&gt;
&lt;div&gt;ListBox&lt;/div&gt;
&lt;div&gt;RadioButton&lt;/div&gt;
&lt;div&gt;RadioButtonList&lt;/div&gt;
&lt;div&gt;SelectionList&lt;/div&gt;
&lt;div&gt;TextBox&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;HtmlInputCheckBox&lt;/div&gt;
&lt;div&gt;HtmlInputFile&lt;/div&gt;
&lt;div&gt;HtmlInputHidden&lt;/div&gt;
&lt;div&gt;HtmlInputImage&lt;/div&gt;
&lt;div&gt;HtmlInputRadioButton&lt;/div&gt;
&lt;div&gt;HtmlInputText&lt;/div&gt;
&lt;div&gt;HtmlSelect&lt;/div&gt;
&lt;div&gt;HtmlTextArea&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112615"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112615" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AaronLi/aggbug/112615.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Aaron Li</dc:creator>
            <guid>http://geekswithblogs.net/AaronLi/archive/2007/05/20/112615.aspx</guid>
            <pubDate>Sun, 20 May 2007 21:20:48 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AaronLi/comments/112615.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AaronLi/archive/2007/05/20/112615.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AaronLi/comments/commentRss/112615.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AaronLi/services/trackbacks/112615.aspx</trackback:ping>
        </item>
        <item>
            <title>While Custom Validator Does Not Fire</title>
            <link>http://geekswithblogs.net/AaronLi/archive/2007/05/11/112404.aspx</link>
            <description>&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial"&gt;&lt;strong&gt;Custom Validator Does Not Fire&lt;/strong&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;     &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;I have code like this,&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&amp;lt;asp:TextBox ID="txtEmailBody" Runat="server" /&amp;gt;&lt;br /&gt;
&amp;lt;asp:CustomValidator ID="valEmailBody"&lt;br /&gt;
                           Runat="server"&lt;br /&gt;
                           ControlToValidate=" txtEmailBody "&lt;br /&gt;
                           Display="None"&lt;br /&gt;
                           OnServerValidate="Validate_EmailBody "&lt;br /&gt;
                           ErrorMessage="*" /&amp;gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;CustomValidator event does not fire if the validated control is empty. &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;If the validated control is a required field, it is easy to fix this problem by adding a RequiredFieldValidator control in addition to the CustomValidator. This means we have to use a RequiredFieldValidator rather than include the logic to checking the control not empty in the CustomValidator. &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 12pt"&gt;&lt;font size="2"&gt;However, if the validated control is not always a required field, for example, in my case, in certain situation, the email body can be empty; but not in other situations. To make the CustomValidator work for this case, we can leave the ControlToValidate property of the custom validator blank. This will force the validator to fire on every round trip although it could somehow affect the performance, but at least the custom validator gets processed.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 12pt"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112404"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112404" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AaronLi/aggbug/112404.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Aaron Li</dc:creator>
            <guid>http://geekswithblogs.net/AaronLi/archive/2007/05/11/112404.aspx</guid>
            <pubDate>Fri, 11 May 2007 06:29:12 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AaronLi/comments/112404.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AaronLi/archive/2007/05/11/112404.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/AaronLi/comments/commentRss/112404.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AaronLi/services/trackbacks/112404.aspx</trackback:ping>
        </item>
        <item>
            <title>Script Callback</title>
            <link>http://geekswithblogs.net/AaronLi/archive/2007/04/20/111817.aspx</link>
            <description>&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;What is the difference between a callback and a postback?&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt; &lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;A callback is a special postback, so a round-trip always occurs; however, unlike the classic postback, the script callback doesn't redraw the whole page. &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;ViewState is not updated during a callback, it is for postback.&lt;/span&gt;&lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt; &lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;How to make a callback?&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt; &lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;In the client side JavaScript code, if GetCallbackEventReference() method is reference, then when the JavaScript code is executed, a channel to the server is opened and an HTTP request is sent to the remote ASP.NET page.&lt;/span&gt;&lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt; &lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;How does the ASP.NET runtime know this HTTP request is a Callback rather than a Postback?&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt; &lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;After the ASP.NET runtime get a HTTP request, it looks for a __CALLBACKID entry in the Request collection. If such an entry is found, the runtime concludes that a callback invocation is being made.&lt;/span&gt;&lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt; &lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;GetCallbackEventReference() syntax&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; LINE-HEIGHT: normal"&gt; &lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;public string GetCallbackEventReference (&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN-LEFT: 117pt; VERTICAL-ALIGN: top; TEXT-INDENT: -105pt; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;string target,       &lt;/span&gt;&lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;    string argument,      &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN-LEFT: 153pt; VERTICAL-ALIGN: top; TEXT-INDENT: -141pt; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;string clientCallback,       &lt;/span&gt;&lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;    string context,&lt;/span&gt;&lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;    string clientErrorCallback,&lt;/span&gt;&lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;    bool useAsync&lt;/span&gt;&lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt; &lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;there are overloads such as &lt;/span&gt;&lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 9pt; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;ClientScriptManager.GetCallbackEventReference (Control, String, String, String)&lt;/span&gt;&lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 9pt; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;ClientScriptManager.GetCallbackEventReference (Control, String, String, String, Boolean)&lt;/span&gt;&lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt; &lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;GetCallbackEventReference() Parameters&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="VERTICAL-ALIGN: top; TEXT-INDENT: 0in; LINE-HEIGHT: normal"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 15pt 0pt; VERTICAL-ALIGN: top"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: windowtext"&gt;&lt;strong&gt;target&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 15pt 0pt 0.5in; VERTICAL-ALIGN: top; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;The name of a server Control that handles the client callback. The control must implement the ICallbackEventHandler interface and provide a RaiseCallbackEvent method (which could be the page itself).&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 15pt 0pt; VERTICAL-ALIGN: top"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: windowtext"&gt;&lt;strong&gt;argument &lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 15pt 0pt 0.5in; VERTICAL-ALIGN: top; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;An argument passed from the client script to the server RaiseCallbackEvent method. &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 15pt 0pt; VERTICAL-ALIGN: top"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: windowtext"&gt;&lt;strong&gt;clientCallback&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 15pt 0pt 0.5in; VERTICAL-ALIGN: top; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;The name of the client event handler that receives the result of the successful server event. &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 15pt 0pt; VERTICAL-ALIGN: top"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: windowtext"&gt;&lt;strong&gt;context&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 15pt 0pt 0.5in; VERTICAL-ALIGN: top; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Client script that is evaluated on the client prior to initiating the callback. The result of the script is passed back to the client event handler.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 15pt 0pt; VERTICAL-ALIGN: top"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: windowtext"&gt;&lt;strong&gt;clientErrorCallback&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 15pt 0pt 0.5in; VERTICAL-ALIGN: top; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;The name of the client event handler that receives the result when an error occurs in the server event handler. &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 15pt 0pt; VERTICAL-ALIGN: top"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: windowtext"&gt;&lt;strong&gt;useAsync&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 15pt 0pt 0.5in; VERTICAL-ALIGN: top; LINE-HEIGHT: normal"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt"&gt;true &lt;/span&gt;&lt;/strong&gt;&lt;span style="FONT-SIZE: 10pt"&gt;to perform the callback asynchronously; &lt;strong&gt;false&lt;/strong&gt; to perform the callback synchronously.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 15pt 0pt 0.5in; VERTICAL-ALIGN: top; LINE-HEIGHT: normal"&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111817"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111817" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AaronLi/aggbug/111817.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Aaron Li</dc:creator>
            <guid>http://geekswithblogs.net/AaronLi/archive/2007/04/20/111817.aspx</guid>
            <pubDate>Fri, 20 Apr 2007 07:02:44 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AaronLi/comments/111817.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AaronLi/archive/2007/04/20/111817.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/AaronLi/comments/commentRss/111817.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AaronLi/services/trackbacks/111817.aspx</trackback:ping>
        </item>
        <item>
            <title>Data-Bound Controls (2) - Built-in Layout</title>
            <link>http://geekswithblogs.net/AaronLi/archive/2007/03/30/110482.aspx</link>
            <description>&lt;H2 style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=4&gt;Built-in Layout&lt;/FONT&gt;&lt;/H2&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;We have talked about the &lt;A href="http://geekswithblogs.net/aaronli/archive/2007/03/30/110479.aspx"&gt;templates&lt;/A&gt; for the following data-bound controls &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-list: l10 level1 lfo15; tab-stops: list .75in"&gt;1.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;GridView&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-list: l10 level1 lfo15; tab-stops: list .75in"&gt;2.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;DataList&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-list: l10 level1 lfo15; tab-stops: list .75in"&gt;3.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Repeater&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-list: l10 level1 lfo15; tab-stops: list .75in"&gt;4.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;DetailsView&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.75in; TEXT-INDENT: -0.25in; mso-list: l10 level1 lfo15; tab-stops: list .75in"&gt;5.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;FormView&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;When the data-bound controls are finally rendered as html tags to the user’s browser, they have different built-in layout. Knowing this help us make decision of what control to use for certain requirement. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;The final default html for each of these controls is a HTML table, but with different rows and columns. Sometimes the table has border, sometimes not.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;The final layout could be affected by adapters or themes if they are applied. The following is the default, built-in layout of these controls&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;STRONG&gt;GridView&lt;SPAN style="FONT-SIZE: 10pt"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoBodyText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Courier New" color=#000000 size=2&gt;&amp;lt;table cellspacing="0" rules="all" border="1" id="GridView1" style="width:100%;border-collapse:collapse;"&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;tr&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;th scope="col"&amp;gt;HeaderText for Field1&amp;lt;/th&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;th scope="col"&amp;gt;HeaderText for Field2&amp;lt;/th&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/tr&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;tr&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;td&amp;gt;VALUE for Field1 for the First Record&amp;lt;/td&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;td&amp;gt;VALUE for Field2 for the First Record&amp;lt;/td&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/tr&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;tr&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;td&amp;gt;VALUE for Field1 for the Second Record&amp;lt;/td&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;td&amp;gt;VALUE for Field2 for the Second Record&amp;lt;/td&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/tr&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;......&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&amp;lt;/table&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;*** Please notice, for this table, border="1"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT color=#000000&gt;&lt;STRONG&gt;DataList&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&amp;lt;table cellspacing="0" border="0" id="FormView1" style="border-collapse:collapse;"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;tr&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;td&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Content Defined in the HeaderTemplate&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/td&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/tr&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;tr&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;td&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Content Defined in the ItemTemplate(first record)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/td&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/tr&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;...... more &amp;lt;tr&amp;gt;&amp;lt;/tr&amp;gt; for more records&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;tr&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;td&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Content Defined in the FooterTemplate&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/td&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/tr&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&amp;lt;/table&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.5in"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.5in"&gt;&lt;FONT color=#000000&gt;&lt;STRONG&gt;Repeater&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.5in"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;Repeater has no built-in layout or styles. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;We must explicitly declare all HTML layout, formatting, and style tags within the templates of the control.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.5in"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.5in"&gt;&lt;FONT color=#000000&gt;&lt;STRONG&gt;DetailsView&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.5in"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;DetailsView is rendered as a multi-row(&amp;lt;tr&amp;gt;) and two-column(&amp;lt;td&amp;gt;) HTML table. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&amp;lt;table cellspacing="0" rules="all" border="1" id="DetailsView1" style="width:100%;border-collapse:collapse;"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;tr&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;td&amp;gt;HeaderText for the First Field&amp;lt;/td&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;td&amp;gt;Value for the First Field&amp;lt;/td&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/tr&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;tr&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;td&amp;gt;HeaderText for the Second Field&amp;lt;/td&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;td&amp;gt;HeaderText for the Second Field&amp;lt;/td&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/tr&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;......&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&amp;lt;/table&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;*** Please notice, for this table, border="1"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.5in"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.5in"&gt;&lt;FONT color=#000000&gt;&lt;STRONG&gt;FormView&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.5in"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;Formview is rendered as a one-row(&amp;lt;tr&amp;gt;) and one-column(&amp;lt;td&amp;gt;) HTML table. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&amp;lt;table cellspacing="0" border="0" id="FormView1" style="border-collapse:collapse;"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;tr&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;td colspan="2"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Content Defined in the ItemTemplate &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: 0.5in; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&amp;lt;/td&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/tr&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&amp;lt;/table&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;FONT color=#000000&gt;*** Well formatted HTML tags can be used in ItemTemplate.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110482"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110482" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AaronLi/aggbug/110482.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Aaron Li</dc:creator>
            <guid>http://geekswithblogs.net/AaronLi/archive/2007/03/30/110482.aspx</guid>
            <pubDate>Sat, 31 Mar 2007 04:00:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AaronLi/comments/110482.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AaronLi/archive/2007/03/30/110482.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AaronLi/comments/commentRss/110482.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AaronLi/services/trackbacks/110482.aspx</trackback:ping>
        </item>
    </channel>
</rss>