<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>Asp.net</title>
        <link>http://geekswithblogs.net/rashid/category/5922.aspx</link>
        <description>Asp.net</description>
        <language>en-US</language>
        <copyright>Kazi Manzur Rashid</copyright>
        <managingEditor>kazimanzurrashid@yahoo.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Asp.net ListView - Data Editing</title>
            <link>http://geekswithblogs.net/rashid/archive/2007/09/13/Asp.net-List---Data-Editing.aspx</link>
            <description>&lt;p&gt;In my &lt;a href="http://geekswithblogs.net/rashid/archive/2007/09/09/Asp.net-ListView---DataBinding.aspx" target="_blank"&gt;previous post&lt;/a&gt;, I have shown the data binding capabilities of &lt;font face="Courier New"&gt;ListView&lt;/font&gt; control. In this post, I will show the Data Editing power of &lt;font face="Courier New"&gt;ListView&lt;/font&gt;. Like the previous &lt;font face="Courier New"&gt;DataGrid&lt;/font&gt;, &lt;font face="Courier New"&gt;DataList&lt;/font&gt; and &lt;font face="Courier New"&gt;GridView&lt;/font&gt; controls the &lt;font face="Courier New"&gt;ListView&lt;/font&gt; control has the &lt;font face="Courier New"&gt;EditItemTemplate&lt;/font&gt; and it also comes up with the long awaited &lt;font face="Courier New"&gt;InsertItemTemplate&lt;/font&gt;, in the past there was a lot of attempt to allow the users to insert data through Header or Footer Template which is no longer required. In this post I will show you the full data editing capabilities of &lt;font face="Courier New"&gt;ListView&lt;/font&gt; which includes Insert, Edit and Delete with both &lt;font face="Courier New"&gt;LinqDataSource&lt;/font&gt; and code. We will follow the previous post example for the data editing.&lt;/p&gt; &lt;p&gt;The first thing you have to do to add the data editing capabilities is defining the Edit item and Insert item templates. Instead of row kind of style editing like the &lt;font face="Courier New"&gt;DataGrid&lt;/font&gt; and &lt;font face="Courier New"&gt;GridView&lt;/font&gt; we will follow the form style editing, this is the another powerful features of ListView that you have the full control on how the html is generated. The following shows the screen-shots of both &lt;font face="Courier New"&gt;EditItemTemplate&lt;/font&gt; and &lt;font face="Courier New"&gt;InsertItemTemplate&lt;/font&gt; view:&lt;/p&gt; &lt;p&gt;&lt;img alt="EditItemTemplate" src="http://geekswithblogs.net/images/geekswithblogs_net/rashid/7054/r_LVW-Edit.png" /&gt;&lt;/p&gt; &lt;p&gt;&lt;img alt="InsertItemTemplate" src="http://geekswithblogs.net/images/geekswithblogs_net/rashid/7054/r_LVW-Add.png" /&gt;&lt;/p&gt; &lt;p&gt;The following shows the EditItem and InsertItem Template:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;EditItemTemplate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;colspan&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="9"&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;table&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tbody&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            Company:
                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CompanyNameTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Bind("CompanyName")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="edit"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CompanyValidator"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ControlToValidate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CompanyNameTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ErrorMessage&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="&amp;lt;div&amp;gt;Company cannot be blank.&amp;lt;/div&amp;gt;"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;SetFocusOnError&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Display&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Dynamic"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="edit"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            Contact:
                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="ContactNameTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Bind("ContactName")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="edit"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="ContactValidator"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ControlToValidate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="ContactNameTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ErrorMessage&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="&amp;lt;div&amp;gt;Contact cannot be blank.&amp;lt;/div&amp;gt;"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;SetFocusOnError&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Display&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Dynamic"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="edit"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            Title:
                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="ContactTitleTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Bind("ContactTitle")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            Address:
                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="AddressTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;TextMode&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="MultiLine"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Columns&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="20"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Rows&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="4"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Bind("Address")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="edit"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="AddressValidator"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ControlToValidate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="AddressTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ErrorMessage&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="&amp;lt;div&amp;gt;Address cannot be blank.&amp;lt;/div&amp;gt;"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;SetFocusOnError&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Display&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Dynamic"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="edit"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            City:
                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CityTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Bind("City")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="edit"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CityValidator"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ControlToValidate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CityTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ErrorMessage&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="&amp;lt;div&amp;gt;City cannot be blank.&amp;lt;/div&amp;gt;"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;SetFocusOnError&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Display&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Dynamic"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="edit"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            Postal Code:
                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="PostalCodeTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Bind("PostalCode")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="edit"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="PostalCodeValidator"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ControlToValidate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="PostalCodeTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ErrorMessage&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="&amp;lt;div&amp;gt;Postal code cannot be blank.&amp;lt;/div&amp;gt;"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;SetFocusOnError&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Display&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Dynamic"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="edit"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            Country:
                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CountryTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Bind("Country")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="edit"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CountryValidator"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ControlToValidate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CountryTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ErrorMessage&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="&amp;lt;div&amp;gt;Country cannot be blank.&amp;lt;/div&amp;gt;"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;SetFocusOnError&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Display&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Dynamic"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="edit"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            Phone:
                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="PhoneTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Bind("Phone")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="edit"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="PhoneValidator"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ControlToValidate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="PhoneTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ErrorMessage&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="&amp;lt;div&amp;gt;Phone cannot be blank.&amp;lt;/div&amp;gt;"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;SetFocusOnError&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Display&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Dynamic"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="edit"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;LinkButton&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="UpdateButton"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;CommandName&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Save"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Update"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="edit"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;LinkButton&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;LinkButton&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CancelButton"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;CommandName&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Cancel"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Cancel"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;CausesValidation&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="false"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;LinkButton&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tbody&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;table&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;EditItemTemplate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;InsertItemTemplate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;colspan&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="9"&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;table&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tbody&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            ID:
                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CustomerIDTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Bind("CustomerID")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="add"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="IDValidator"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ControlToValidate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CustomerIDTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ErrorMessage&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="&amp;lt;div&amp;gt;ID cannot be blank.&amp;lt;/div&amp;gt;"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;SetFocusOnError&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Display&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Dynamic"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="add"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            Company:
                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CompanyNameTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Bind("CompanyName")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="add"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CompanyValidator"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ControlToValidate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CompanyNameTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ErrorMessage&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="&amp;lt;div&amp;gt;Company cannot be blank.&amp;lt;/div&amp;gt;"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;SetFocusOnError&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Display&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Dynamic"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="add"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            Contact:
                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="ContactNameTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Bind("ContactName")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="add"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="ContactValidator"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ControlToValidate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="ContactNameTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ErrorMessage&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="&amp;lt;div&amp;gt;Contact cannot be blank.&amp;lt;/div&amp;gt;"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;SetFocusOnError&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Display&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Dynamic"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="add"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            Title:
                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="ContactTitleTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Bind("ContactTitle")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            Address:
                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="AddressTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Bind("Address")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;TextMode&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="MultiLine"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Columns&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="20"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Rows&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="4"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="add"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="AddressValidator"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ControlToValidate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="AddressTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ErrorMessage&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="&amp;lt;div&amp;gt;Address cannot be blank.&amp;lt;/div&amp;gt;"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;SetFocusOnError&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Display&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Dynamic"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="add"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            City:
                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CityTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Bind("City")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="add"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CityValidator"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ControlToValidate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CityTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ErrorMessage&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="&amp;lt;div&amp;gt;City cannot be blank.&amp;lt;/div&amp;gt;"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;SetFocusOnError&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Display&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Dynamic"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="add"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            Postal Code:
                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="PostalCodeTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Bind("PostalCode")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="add"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="PostalCodeValidator"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ControlToValidate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="PostalCodeTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ErrorMessage&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="&amp;lt;div&amp;gt;Postal code cannot be blank.&amp;lt;/div&amp;gt;"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;SetFocusOnError&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Display&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Dynamic"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="add"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            Country:
                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CountryTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Bind("Country")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="add"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CountryValidator"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ControlToValidate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CountryTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ErrorMessage&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="&amp;lt;div&amp;gt;Country cannot be blank.&amp;lt;/div&amp;gt;"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;SetFocusOnError&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Display&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Dynamic"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="add"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            Phone:
                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="PhoneTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Bind("Phone")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="add"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;TextBox&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="PhoneValidator"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ControlToValidate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="PhoneTextBox"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ErrorMessage&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="&amp;lt;div&amp;gt;Phone cannot be blank.&amp;lt;/div&amp;gt;"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;SetFocusOnError&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Display&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Dynamic"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="add"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;RequiredFieldValidator&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;LinkButton&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="InsertButton"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;CommandName&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Insert"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Save"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ValidationGroup&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="add"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;LinkButton&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;LinkButton&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="CancelButton"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;CommandName&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Cancel"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Cancel"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;CausesValidation&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="false"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;LinkButton&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tbody&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;table&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;InsertItemTemplate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;To edit existing record, you have to put a &lt;font face="Courier New"&gt;Button&lt;/font&gt; in the &lt;font face="Courier New"&gt;ItemTemplate/AlternatingItemTemplate&lt;/font&gt; which &lt;font face="Courier New"&gt;commandName&lt;/font&gt; is set to &lt;font face="Courier New"&gt;Edit&lt;/font&gt;, you can also use &lt;font face="Courier New"&gt;ImageButton/LinkButton&lt;/font&gt; instead of regular button as in this example I am using &lt;font face="Courier New"&gt;LinkButton&lt;/font&gt;. The same holds true for deleting record, in this case the &lt;font face="Courier New"&gt;commandName&lt;/font&gt; has to be &lt;font face="Courier New"&gt;Delete&lt;/font&gt;. Next, in the &lt;font face="Courier New"&gt;EditItemTemplate&lt;/font&gt; you have to add buttons which &lt;font face="Courier New"&gt;commandName&lt;/font&gt; sets to &lt;font face="Courier New"&gt;Update&lt;/font&gt; and &lt;font face="Courier New"&gt;Cancel&lt;/font&gt;.&lt;/p&gt;
&lt;p&gt;To add record, you must have to set the &lt;font face="Courier New"&gt;InsertItemTemplate&lt;/font&gt; position, the supported values are &lt;font face="Courier New"&gt;FirstItem&lt;/font&gt;, &lt;font face="Courier New"&gt;LastItem&lt;/font&gt; and &lt;font face="Courier New"&gt;None&lt;/font&gt;. Since we are using form view for adding record it does not look appealing showing it all the time, instead we will put a button in the &lt;font face="Courier New"&gt;LayoutTemplate&lt;/font&gt;, upon click the form view will appear at the end. Next, in the &lt;font face="Courier New"&gt;InsertItemTemplate&lt;/font&gt; two new buttons are required which &lt;font face="Courier New"&gt;commandName&lt;/font&gt; sets to &lt;font face="Courier New"&gt;Insert&lt;/font&gt; and &lt;font face="Courier New"&gt;Cancel&lt;/font&gt;. At last, as we are showing this template on the new button click, we need to put few lines of code to show/hide the template as well as the new button. The following shows the code:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; CloseInsert()
{
    lvwCustomers.InsertItemPosition = &lt;span style="color: rgb(43,145,175)"&gt;InsertItemPosition&lt;/span&gt;.None;
    ((&lt;span style="color: rgb(43,145,175)"&gt;LinkButton&lt;/span&gt;) lvwCustomers.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"NewButton"&lt;/span&gt;)).Visible = &lt;span style="color: rgb(0,0,255)"&gt;true&lt;/span&gt;;
}

&lt;span style="color: rgb(0,0,255)"&gt;protected&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; NewButton_Click(&lt;span style="color: rgb(0,0,255)"&gt;object&lt;/span&gt; sender, &lt;span style="color: rgb(43,145,175)"&gt;EventArgs&lt;/span&gt; e)
{
    lvwCustomers.EditIndex = -1;
    lvwCustomers.InsertItemPosition = &lt;span style="color: rgb(43,145,175)"&gt;InsertItemPosition&lt;/span&gt;.LastItem;
    ((&lt;span style="color: rgb(43,145,175)"&gt;LinkButton&lt;/span&gt;) sender).Visible = &lt;span style="color: rgb(0,0,255)"&gt;false&lt;/span&gt;;
}

&lt;span style="color: rgb(0,0,255)"&gt;protected&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; lvwCustomers_ItemEditing(&lt;span style="color: rgb(0,0,255)"&gt;object&lt;/span&gt; sender, &lt;span style="color: rgb(43,145,175)"&gt;ListViewEditEventArgs&lt;/span&gt; e)
{
    CloseInsert();
}

&lt;span style="color: rgb(0,0,255)"&gt;protected&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; lvwCustomers_ItemCanceling(&lt;span style="color: rgb(0,0,255)"&gt;object&lt;/span&gt; sender, &lt;span style="color: rgb(43,145,175)"&gt;ListViewCancelEventArgs&lt;/span&gt; e)
{
    &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (e.CancelMode == &lt;span style="color: rgb(43,145,175)"&gt;ListViewCancelMode&lt;/span&gt;.CancelingInsert)
    {
        CloseInsert();
    }
}

&lt;span style="color: rgb(0,0,255)"&gt;protected&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; lvwCustomers_ItemInserted(&lt;span style="color: rgb(0,0,255)"&gt;object&lt;/span&gt; sender, &lt;span style="color: rgb(43,145,175)"&gt;ListViewInsertedEventArgs&lt;/span&gt; e)
{
    CloseInsert();
}&lt;/pre&gt;
&lt;p&gt;That's it we are all set to Add/Edit/Delete the records with &lt;font face="Courier New"&gt;LinqDataSource&lt;/font&gt; control.&lt;/p&gt;
&lt;p&gt;Now we will see how to do the same with code. It is almost same as the &lt;font face="Courier New"&gt;LinqDataSource&lt;/font&gt; except few things, we need to hook the &lt;font face="Courier New"&gt;ItemCommand&lt;/font&gt; event and add few empty event handlers, the following shows the code:&lt;br /&gt;&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;protected&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; lvwCustomers_ItemCommand(&lt;span style="color: rgb(0,0,255)"&gt;object&lt;/span&gt; sender, &lt;span style="color: rgb(43,145,175)"&gt;ListViewCommandEventArgs&lt;/span&gt; e)
{
    &lt;span style="color: rgb(0,0,255)"&gt;switch&lt;/span&gt;(e.CommandName)
    {
        &lt;span style="color: rgb(0,0,255)"&gt;case&lt;/span&gt; &lt;span style="color: rgb(163,21,21)"&gt;"Insert"&lt;/span&gt;:
        {
            InsertCustomer(e.Item);
            &lt;span style="color: rgb(0,0,255)"&gt;break&lt;/span&gt;;
        }
        &lt;span style="color: rgb(0,0,255)"&gt;case&lt;/span&gt; &lt;span style="color: rgb(163,21,21)"&gt;"Update"&lt;/span&gt;:
        {
            UpdateCustomer(e.CommandArgument &lt;span style="color: rgb(0,0,255)"&gt;as&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;, e.Item);
            &lt;span style="color: rgb(0,0,255)"&gt;break&lt;/span&gt;;
        }
        &lt;span style="color: rgb(0,0,255)"&gt;case&lt;/span&gt; &lt;span style="color: rgb(163,21,21)"&gt;"Delete"&lt;/span&gt;:
        {
            DeleteCustomer(e.CommandArgument &lt;span style="color: rgb(0,0,255)"&gt;as&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;);
            &lt;span style="color: rgb(0,0,255)"&gt;break&lt;/span&gt;;
        }
    }
}

&lt;span style="color: rgb(0,0,255)"&gt;protected&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; lvwCustomers_ItemInserting(&lt;span style="color: rgb(0,0,255)"&gt;object&lt;/span&gt; sender, &lt;span style="color: rgb(43,145,175)"&gt;ListViewInsertEventArgs&lt;/span&gt; e)
{
}

&lt;span style="color: rgb(0,0,255)"&gt;protected&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; lvwCustomers_ItemEditing(&lt;span style="color: rgb(0,0,255)"&gt;object&lt;/span&gt; sender, &lt;span style="color: rgb(43,145,175)"&gt;ListViewEditEventArgs&lt;/span&gt; e)
{
    CloseInsert();
    lvwCustomers.EditIndex = e.NewEditIndex;
    BindList();
}

&lt;span style="color: rgb(0,0,255)"&gt;protected&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; lvwCustomers_ItemUpdating(&lt;span style="color: rgb(0,0,255)"&gt;object&lt;/span&gt; sender, &lt;span style="color: rgb(43,145,175)"&gt;ListViewUpdateEventArgs&lt;/span&gt; e)
{
}

&lt;span style="color: rgb(0,0,255)"&gt;protected&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; lvwCustomers_ItemCanceling(&lt;span style="color: rgb(0,0,255)"&gt;object&lt;/span&gt; sender, &lt;span style="color: rgb(43,145,175)"&gt;ListViewCancelEventArgs&lt;/span&gt; e)
{
    &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (e.CancelMode == &lt;span style="color: rgb(43,145,175)"&gt;ListViewCancelMode&lt;/span&gt;.CancelingInsert)
    {
        CloseInsert();
    }
    &lt;span style="color: rgb(0,0,255)"&gt;else
&lt;/span&gt;    {
        lvwCustomers.EditIndex = -1;
    }

    BindList();
}

&lt;span style="color: rgb(0,0,255)"&gt;protected&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; lvwCustomers_ItemDeleting(&lt;span style="color: rgb(0,0,255)"&gt;object&lt;/span&gt; sender, &lt;span style="color: rgb(43,145,175)"&gt;ListViewDeleteEventArgs&lt;/span&gt; e)
{
}&lt;/pre&gt;
&lt;p&gt;As you can see that in &lt;font face="Courier New"&gt;ItemCommand&lt;/font&gt; event we are checking the &lt;font face="Courier New"&gt;commandName&lt;/font&gt; and based upon that we are calling the helper function which does the actual db operation. The reason behind having those empty event handlers like &lt;font face="Courier New"&gt;ItemInserting&lt;/font&gt;, &lt;font face="Courier New"&gt;ItemUpdating&lt;/font&gt; and &lt;font face="Courier New"&gt;ItemDeleting&lt;/font&gt; is, if those left unhandled you will get a nasty exception that the event was not handled. While playing with the &lt;font face="Courier New"&gt;ListView&lt;/font&gt; data editing my first try was these events to do the db operation instead of the &lt;font face="Courier New"&gt;ItemCommand&lt;/font&gt;, but found that the event argument always left empty(except the &lt;font face="Courier New"&gt;itemIndex)&lt;/font&gt; as well as the &lt;font face="Courier New"&gt;EditItem&lt;/font&gt; and &lt;font face="Courier New"&gt;InsertItem&lt;/font&gt; property of &lt;font face="Courier New"&gt;ListView&lt;/font&gt; if the &lt;font face="Courier New"&gt;ListView&lt;/font&gt; is not bind with any &lt;font face="Courier New"&gt;DataSource&lt;/font&gt; control.&lt;/p&gt;
&lt;p&gt;Now lets see what those db operation functions does, the following shows the code:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; InsertCustomer(&lt;span style="color: rgb(43,145,175)"&gt;ListViewItem&lt;/span&gt; insertItem)
{
    &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (IsValid)
    {
        &lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; (&lt;span style="color: rgb(43,145,175)"&gt;NorthwindDataContext&lt;/span&gt; db = &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;NorthwindDataContext&lt;/span&gt;())
        {
            &lt;span style="color: rgb(43,145,175)"&gt;Customer&lt;/span&gt; customer = &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Customer&lt;/span&gt;();

            customer.CustomerID = ((&lt;span style="color: rgb(43,145,175)"&gt;TextBox&lt;/span&gt;)insertItem.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"CustomerIDTextBox"&lt;/span&gt;)).Text;
            customer.CompanyName = ((&lt;span style="color: rgb(43,145,175)"&gt;TextBox&lt;/span&gt;)insertItem.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"CompanyNameTextBox"&lt;/span&gt;)).Text;
            customer.ContactName = ((&lt;span style="color: rgb(43,145,175)"&gt;TextBox&lt;/span&gt;)insertItem.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"ContactNameTextBox"&lt;/span&gt;)).Text;
            customer.ContactTitle = ((&lt;span style="color: rgb(43,145,175)"&gt;TextBox&lt;/span&gt;)insertItem.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"ContactTitleTextBox"&lt;/span&gt;)).Text;
            customer.Address = ((&lt;span style="color: rgb(43,145,175)"&gt;TextBox&lt;/span&gt;)insertItem.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"AddressTextBox"&lt;/span&gt;)).Text;
            customer.City = ((&lt;span style="color: rgb(43,145,175)"&gt;TextBox&lt;/span&gt;)insertItem.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"CityTextBox"&lt;/span&gt;)).Text;
            customer.PostalCode = ((&lt;span style="color: rgb(43,145,175)"&gt;TextBox&lt;/span&gt;)insertItem.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"PostalCodeTextBox"&lt;/span&gt;)).Text;
            customer.Country = ((&lt;span style="color: rgb(43,145,175)"&gt;TextBox&lt;/span&gt;)insertItem.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"CountryTextBox"&lt;/span&gt;)).Text;
            customer.Phone = ((&lt;span style="color: rgb(43,145,175)"&gt;TextBox&lt;/span&gt;)insertItem.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"PhoneTextBox"&lt;/span&gt;)).Text;

            db.Customers.Add(customer);

            db.SubmitChanges();
            CloseInsert();
            BindList();
        }
    }
}

&lt;span style="color: rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; UpdateCustomer(&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; customerID, &lt;span style="color: rgb(43,145,175)"&gt;ListViewItem&lt;/span&gt; editItem)
{
    &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (IsValid)
    {
        &lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; (&lt;span style="color: rgb(43,145,175)"&gt;NorthwindDataContext&lt;/span&gt; db = &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;NorthwindDataContext&lt;/span&gt;())
        {
            &lt;span style="color: rgb(43,145,175)"&gt;Customer&lt;/span&gt; customer = db.Customers.Where(c =&amp;gt; c.CustomerID == customerID).Single();

            customer.CompanyName = ((&lt;span style="color: rgb(43,145,175)"&gt;TextBox&lt;/span&gt;) editItem.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"CompanyNameTextBox"&lt;/span&gt;)).Text;
            customer.ContactName = ((&lt;span style="color: rgb(43,145,175)"&gt;TextBox&lt;/span&gt;)editItem.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"ContactNameTextBox"&lt;/span&gt;)).Text;
            customer.ContactTitle = ((&lt;span style="color: rgb(43,145,175)"&gt;TextBox&lt;/span&gt;)editItem.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"ContactTitleTextBox"&lt;/span&gt;)).Text;
            customer.Address = ((&lt;span style="color: rgb(43,145,175)"&gt;TextBox&lt;/span&gt;)editItem.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"AddressTextBox"&lt;/span&gt;)).Text;
            customer.City = ((&lt;span style="color: rgb(43,145,175)"&gt;TextBox&lt;/span&gt;)editItem.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"CityTextBox"&lt;/span&gt;)).Text;
            customer.PostalCode = ((&lt;span style="color: rgb(43,145,175)"&gt;TextBox&lt;/span&gt;)editItem.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"PostalCodeTextBox"&lt;/span&gt;)).Text;
            customer.Country = ((&lt;span style="color: rgb(43,145,175)"&gt;TextBox&lt;/span&gt;)editItem.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"CountryTextBox"&lt;/span&gt;)).Text;
            customer.Phone = ((&lt;span style="color: rgb(43,145,175)"&gt;TextBox&lt;/span&gt;)editItem.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"PhoneTextBox"&lt;/span&gt;)).Text;

            db.SubmitChanges();
            lvwCustomers.EditIndex = -1;
            BindList();
        }
    }
}

&lt;span style="color: rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; DeleteCustomer(&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; customerID)
{
    &lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt;(&lt;span style="color: rgb(43,145,175)"&gt;NorthwindDataContext&lt;/span&gt; db = &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;NorthwindDataContext&lt;/span&gt;())
    {
        &lt;span style="color: rgb(43,145,175)"&gt;Customer&lt;/span&gt; customer = db.Customers.Where(c =&amp;gt; c.CustomerID == customerID).Single();
        db.Customers.Remove(customer);
        db.SubmitChanges();
    }

    &lt;span style="color: rgb(43,145,175)"&gt;Pager&lt;/span&gt; dpCustomers = (&lt;span style="color: rgb(43,145,175)"&gt;Pager&lt;/span&gt;)lvwCustomers.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"dpCustomers"&lt;/span&gt;);
    dpCustomers.CurrentPageNo = 1;

    BindList();
}&lt;/pre&gt;
&lt;p&gt;That's it. You will find the complete source code of both of this example in the bottom of this post. In my next post, I will show the new &lt;font face="Courier New"&gt;GroupTemplate&lt;/font&gt; of &lt;font face="Courier New"&gt;ListView&lt;/font&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Download&lt;/strong&gt;: &lt;a href="http://www.box.net/shared/kmhcsb53pj" target="_blank"&gt;Full Source&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://geekswithblogs.net/rashid/archive/2007/09/13/Asp.net-List---Data-Editing.aspx" target="_blank"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://geekswithblogs.net/rashid/archive/2007/09/13/Asp.net-List---Data-Editing.aspx" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115320"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115320" 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/rashid/aggbug/115320.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kazi Manzur Rashid</dc:creator>
            <guid>http://geekswithblogs.net/rashid/archive/2007/09/13/Asp.net-List---Data-Editing.aspx</guid>
            <pubDate>Thu, 13 Sep 2007 20:17:12 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rashid/comments/115320.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rashid/archive/2007/09/13/Asp.net-List---Data-Editing.aspx#feedback</comments>
            <slash:comments>8</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/rashid/comments/commentRss/115320.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rashid/services/trackbacks/115320.aspx</trackback:ping>
        </item>
        <item>
            <title>Asp.net ListView - DataBinding</title>
            <link>http://geekswithblogs.net/rashid/archive/2007/09/09/Asp.net-ListView---DataBinding.aspx</link>
            <description>&lt;p&gt;In my &lt;a href="http://geekswithblogs.net/rashid/archive/2007/09/05/Asp.net-ListView---Too-much-CSS-Friendly.aspx" target="_blank"&gt;previous post&lt;/a&gt;, I have presented few cool css examples of the new Asp.net &lt;font face="Courier New"&gt;ListView&lt;/font&gt; control. In this post, I will show how you can setup the data binding of the &lt;font face="Courier New"&gt;ListView&lt;/font&gt; control with the new &lt;font face="Courier New"&gt;LinqDataSource&lt;/font&gt; control as well as through code, which outputs the previous post examples.&lt;/p&gt; &lt;p&gt;Like its ancestor, the &lt;font face="Courier New"&gt;ListView&lt;/font&gt; comes up with few templates and some of them are really new. In order to bind data we first have to define the &lt;font face="Courier New"&gt;LayoutTemplate&lt;/font&gt;. The &lt;font face="Courier New"&gt;LayoutTemplate&lt;/font&gt; is a new template that acts as a container for either group or item templates. Since our previous example presents the data in tabular format, we will exclude the &lt;font face="Courier New"&gt;GroupTemplate&lt;/font&gt; from discussing in this post. One of the required thing you have to keep in mind while defining the &lt;font face="Courier New"&gt;LayoutTemplate&lt;/font&gt; is, you must have to declare an &lt;font face="Courier New"&gt;itemContainer&lt;/font&gt;/&lt;font face="Courier New"&gt;groupContainer&lt;/font&gt; where the item/group will be repeated. For example, I have declared the &lt;font face="Courier New"&gt;tbody&lt;/font&gt; as the &lt;font face="Courier New"&gt;itemContainer&lt;/font&gt; like the following:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;LayoutTemplate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;table&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;thead&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;Company&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;Contact&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;Title&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;Address&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;City&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;Postal Code&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;Country&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;Phone&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;thead&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;strong&gt;&lt;font size="3"&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tbody&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="itemContainer"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tbody&lt;/span&gt;&lt;/font&gt;&lt;/strong&gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;strong&gt;&lt;font size="3"&gt;&amp;gt;
&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tfoot&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;style&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;text-align&lt;/span&gt;:&lt;span style="color: rgb(0,0,255)"&gt;right"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;colspan&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="8"&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;DataPager&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="dpCustomers"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;PageSize&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="10"&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Fields&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;NumericPagerField&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ButtonCount&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="5"/&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Fields&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;DataPager&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tfoot&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;table&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;LayoutTemplate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;As you can see, the &lt;font face="Courier New"&gt;LayoutTemplate&lt;/font&gt; also contains another new control &lt;font face="Courier New"&gt;DataPager&lt;/font&gt; that I will discuss later. Another important thing is that unlike the &lt;font face="Courier New"&gt;Repeater&lt;/font&gt; control where usually the &lt;font face="Courier New"&gt;HeaderTemplate&lt;/font&gt; contains the starting tag and the &lt;font face="Courier New"&gt;FooterTemplate&lt;/font&gt; contains the ending tag of the container , the &lt;font face="Courier New"&gt;LayoutTemplate&lt;/font&gt; contains the both except the repeating part.&lt;/p&gt;
&lt;p&gt;Next, we have to define the &lt;font face="Courier New"&gt;ItemTemplate&lt;/font&gt; and the &lt;font face="Courier New"&gt;AlteringItemTemplate&lt;/font&gt; like the following:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="lblCompany"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Eval("CompanyName")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="lblContact"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Eval("ContactName")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="lblTitle"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Eval("ContactTitle")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="lblAddress"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Eval("Address")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="lblCity"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Eval("City")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="lblPostalCode"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Eval("PostalCode")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="lblCountry"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Eval("Country")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="lblPhone"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Eval("Phone")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;AlternatingItemTemplate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;class&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="odd"&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="lblCompany"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Eval("CompanyName")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="lblContact"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Eval("ContactName")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="lblTitle"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Eval("ContactTitle")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="lblAddress"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Eval("Address")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="lblCity"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Eval("City")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="lblPostalCode"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Eval("PostalCode")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="lblCountry"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Eval("Country")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="lblPhone"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Text&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;='&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; #Eval("Phone")&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Label&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;AlternatingItemTemplate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;At last, we will add a &lt;font face="Courier New"&gt;LinqDataSource&lt;/font&gt; control which will refer the &lt;font face="Courier New"&gt;Customers&lt;/font&gt; table of &lt;font face="Courier New"&gt;Northwind&lt;/font&gt; database. Certainly you have to add a &lt;font face="Courier New"&gt;LinqToSQLClasses&lt;/font&gt; previously and define the data model. The following shows the &lt;font face="Courier New"&gt;LinqDataSource&lt;/font&gt;:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;asp&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;LinqDataSource&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="linqCustomers"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ContextTypeName&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="NorthwindDataContext"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;TableName&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Customers"/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;One of the benefits of using &lt;font face="Courier New"&gt;LinqDataSource&lt;/font&gt; over the other DataSource controls is it produces very optimized &lt;font face="Courier New"&gt;SQL&lt;/font&gt; without writing a single line of code. For example, the following &lt;font face="Courier New"&gt;SQL&lt;/font&gt; is generated when I moved to page two by clicking the &lt;font face="Courier New"&gt;DataPager&lt;/font&gt;.&lt;/p&gt;&lt;pre&gt;exec sp_executesql N'SELECT TOP 10 [t1].[CustomerID], [t1].[CompanyName], [t1].[ContactName], [t1].[ContactTitle], [t1].[Address], [t1].[City], [t1].[Region], [t1].[PostalCode], [t1].[Country], [t1].[Phone], [t1].[Fax]
FROM (
    SELECT ROW_NUMBER() OVER (ORDER BY [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName], [t0].[ContactTitle], [t0].[Address], [t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[Country], [t0].[Phone], [t0].[Fax]) AS [ROW_NUMBER], [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName], [t0].[ContactTitle], [t0].[Address], [t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[Country], [t0].[Phone], [t0].[Fax]
    FROM [dbo].[Customers] AS [t0]
    ) AS [t1]
WHERE [t1].[ROW_NUMBER] &amp;gt; @p0',N'@p0 int',@p0=10
&lt;/pre&gt;
&lt;p&gt;Like the other data controls, both the &lt;font face="Courier New"&gt;ListView&lt;/font&gt; and &lt;font face="Courier New"&gt;DataPager&lt;/font&gt; are tightly coupled with the DataSource controls.&lt;/p&gt;
&lt;p&gt;So far we have seen how to bind data with the DataSource Control, now lets see how to bind data with code. The first issue you will face while binding pageable data that like the &lt;font face="Courier New"&gt;GridView&lt;/font&gt; built-in paging, there is no way you can utilize the &lt;font face="Courier New"&gt;DataPager&lt;/font&gt; control unless you use the DataSource controls. So you have to roll your own pager, in this example I have substitute the &lt;font face="Courier New"&gt;DataPager&lt;/font&gt; control with the server side version of my &lt;a href="http://geekswithblogs.net/rashid/archive/2007/06/15/My-New-Project-AjaxDataControls.aspx" target="_blank"&gt;AjaxDataControls&lt;/a&gt; pager. Thus the &lt;font face="Courier New"&gt;LayoutTemplate&lt;/font&gt; becomes:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;LayoutTemplate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;table&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;thead&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;Company&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;Contact&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;Title&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;Address&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;City&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;Postal Code&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;Country&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;Phone&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;thead&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tbody&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="itemContainer"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tbody&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tfoot&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;colspan&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="8"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;style&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;text-align&lt;/span&gt;:&lt;span style="color: rgb(0,0,255)"&gt;right"&amp;gt;
&lt;/span&gt;                    &lt;strong&gt;&lt;font size="3"&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;cc1&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;:&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;Pager&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="pager"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;OnPageChange&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="pager_PageChange"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;SliderSize&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="5"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ShowFirstAndLast&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="false"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;ShowPreviousAndNext&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt;&lt;/font&gt;&lt;/strong&gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;strong&gt;&lt;font size="3"&gt;/&amp;gt;
&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;th&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tfoot&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;table&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;LayoutTemplate&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;The next issue you will face once you put the pager in the &lt;font face="Courier New"&gt;LayoutTemplate&lt;/font&gt; is, you will not be able to get the reference of the control by &lt;font face="Courier New"&gt;FindControl()&lt;/font&gt; until you bind the data of the ListView. So we have to first bind with a dummy data to get the reference, once done we will bind with the original data like the following:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; BindList()
{
    &lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; (&lt;span style="color: rgb(43,145,175)"&gt;NorthwindDataContext&lt;/span&gt; db = &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;NorthwindDataContext&lt;/span&gt;())
    {
        &lt;span style="color: rgb(0,128,0)"&gt;//Unless we bind the data we will not be able to refer the pager control
&lt;/span&gt;        &lt;span style="color: rgb(0,128,0)"&gt;//so bind it with a dummy data
&lt;/span&gt;        lvwCustomers.DataSource = &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Customer&lt;/span&gt;[] { &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Customer&lt;/span&gt;() };
        lvwCustomers.DataBind();

        &lt;span style="color: rgb(43,145,175)"&gt;Pager&lt;/span&gt; pager = (&lt;span style="color: rgb(43,145,175)"&gt;Pager&lt;/span&gt;)lvwCustomers.FindControl(&lt;span style="color: rgb(163,21,21)"&gt;"pager"&lt;/span&gt;);
        &lt;span style="color: rgb(0,128,0)"&gt;//Calculate the startIndex based upon the Current and RowPerPage
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;int&lt;/span&gt; startIndex = (pager.CurrentPageNo - 1) * pager.RowPerPage;

        &lt;span style="color: rgb(0,128,0)"&gt;//Now bind it with the actual data.
&lt;/span&gt;        lvwCustomers.DataSource = db.Customers.Skip(startIndex).Take(pager.RowPerPage);
        lvwCustomers.DataBind();

        &lt;span style="color: rgb(0,128,0)"&gt;//We also need to know the total row in order to properly render the pager
&lt;/span&gt;        pager.TotalRow = db.Customers.Count();
    }
}&lt;/pre&gt;
&lt;p&gt;Next we have to handle the &lt;font face="Courier New"&gt;PageChange&lt;/font&gt; event of the pager to render the new page records. The following shows the code of this event:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;protected&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; pager_PageChange(&lt;span style="color: rgb(0,0,255)"&gt;object&lt;/span&gt; sender, &lt;span style="color: rgb(43,145,175)"&gt;PageChangeEventArgs&lt;/span&gt; e)
{
    ((&lt;span style="color: rgb(43,145,175)"&gt;Pager&lt;/span&gt;)sender).CurrentPageNo = e.PageNo;
    BindList();
}&lt;/pre&gt;
&lt;p&gt;That's it. You will find the full source code of both these example in the bottom of this post. In my next post, I will show how we can leverage the data editing capabilities of &lt;font face="Courier New"&gt;ListView&lt;/font&gt; control.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Download&lt;/strong&gt;: &lt;a href="http://www.box.net/shared/3rs1kncv87" target="_blank"&gt;Full Source&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://geekswithblogs.net/rashid/archive/2007/09/09/Asp.net-ListView---DataBinding.aspx" target="_blank"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://geekswithblogs.net/rashid/archive/2007/09/09/Asp.net-ListView---DataBinding.aspx" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115223"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115223" 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/rashid/aggbug/115223.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kazi Manzur Rashid</dc:creator>
            <guid>http://geekswithblogs.net/rashid/archive/2007/09/09/Asp.net-ListView---DataBinding.aspx</guid>
            <pubDate>Sun, 09 Sep 2007 06:18:20 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rashid/comments/115223.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rashid/archive/2007/09/09/Asp.net-ListView---DataBinding.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/rashid/comments/commentRss/115223.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rashid/services/trackbacks/115223.aspx</trackback:ping>
        </item>
        <item>
            <title>Asp.net ListView - Too much CSS Friendly</title>
            <link>http://geekswithblogs.net/rashid/archive/2007/09/05/Asp.net-ListView---Too-much-CSS-Friendly.aspx</link>
            <description>&lt;p&gt;My First experiment with Asp.net ListView control was awesome. I downloaded few templates from &lt;a href="http://icant.co.uk/csstablegallery/index.php?css=62" target="_blank"&gt;CSS Table Gallery&lt;/a&gt; and able to apply it only in few minutes. Checkout the result of Northwind Customer table:&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;img alt="Green" src="http://geekswithblogs.net/images/geekswithblogs_net/rashid/7054/r_LVW-Green.jpg" /&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;img alt="Grey" src="http://geekswithblogs.net/images/geekswithblogs_net/rashid/7054/r_LVW-Grey.jpg" /&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;img alt="Groove" src="http://geekswithblogs.net/images/geekswithblogs_net/rashid/7054/r_LVW-Media.jpg" /&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;img alt="Groove" src="http://geekswithblogs.net/images/geekswithblogs_net/rashid/7054/r_LVW-Sea.jpg" /&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Simply Rocking!&lt;/p&gt; &lt;p&gt;I will be covering the other features of this cool control in my future posts. Stay tuned.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Download&lt;/strong&gt;: &lt;a href="http://www.box.net/shared/rdd9cbtpae" target="_blank"&gt;Full Source&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://geekswithblogs.net/rashid/archive/2007/09/05/Asp.net-ListView---Too-much-CSS-Friendly.aspx" target="_blank"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://geekswithblogs.net/rashid/archive/2007/09/05/Asp.net-ListView---Too-much-CSS-Friendly.aspx" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115150"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115150" 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/rashid/aggbug/115150.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kazi Manzur Rashid</dc:creator>
            <guid>http://geekswithblogs.net/rashid/archive/2007/09/05/Asp.net-ListView---Too-much-CSS-Friendly.aspx</guid>
            <pubDate>Wed, 05 Sep 2007 11:22:32 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rashid/comments/115150.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rashid/archive/2007/09/05/Asp.net-ListView---Too-much-CSS-Friendly.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/rashid/comments/commentRss/115150.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rashid/services/trackbacks/115150.aspx</trackback:ping>
        </item>
        <item>
            <title>Create An Ajax Style File Upload</title>
            <link>http://geekswithblogs.net/rashid/archive/2007/08/01/Create-An-Ajax-Style-File-Upload.aspx</link>
            <description>&lt;p&gt;If you visit &lt;a href="http://forums.asp.net/default.aspx?GroupID=34" target="_blank"&gt;Asp.net Ajax Forum&lt;/a&gt;, you will find hundreds of request on File Upload Control that it does not give Ajax version of the page when it is placed in an &lt;font face="Courier New"&gt;UpdatePanel&lt;/font&gt;. Certainly, it is not possible, as the &lt;font face="Courier New"&gt;XMLHTTPRequest&lt;/font&gt; object that is used internally to post the form does not support file upload. In this post I will show you how to create Ajax like version of the file upload. The trick is very simple, I will use an &lt;font face="Courier New"&gt;Iframe&lt;/font&gt; to upload the file so the whole page does not get refreshed and when the post is in progress it will show a dummy progress. The following shows you the screenshots of the solutions:&lt;/p&gt; &lt;p&gt; &lt;/p&gt;&lt;table cellspacing="0" cellpadding="3" border="0" unselectable="on"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style="vertical-align: top"&gt;&lt;img alt="Initial" src="http://geekswithblogs.net/images/geekswithblogs_net/rashid/6912/r_Initial.jpg" /&gt;&lt;/td&gt; &lt;td style="vertical-align: top"&gt;&lt;img alt="In Progress" src="http://geekswithblogs.net/images/geekswithblogs_net/rashid/6912/r_InProgress.jpg" /&gt;&lt;/td&gt; &lt;td style="vertical-align: top"&gt;&lt;img alt="Complete" src="http://geekswithblogs.net/images/geekswithblogs_net/rashid/6912/r_Complete.jpg" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;Now lets discuss the implementation part, starting with the Main page markup.&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;fieldset&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;legend&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;Photo Upload Demo&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;legend&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;div&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="divFrame"&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;iframe&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="ifrPhoto"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;onload&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="initPhotoUpload()"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;scrolling&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="no"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;frameborder&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="0"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;hidefocus&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="true"&lt;/span&gt; &lt;br /&gt;&lt;span style="color: rgb(255,0,0)"&gt;style&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="text-align:center;vertical-align:middle;border-style:none;margin:0px;width:100%;height:55px"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;src&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="PhotoUpload.aspx"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;iframe&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;div&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;div&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="divUploadMessage"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;style&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="padding-top:4px;display:none"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;div&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;div&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="divUploadProgress"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;style&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="padding-top:4px;display:none"&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;span&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;style&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="font-size:smaller"&amp;gt;&lt;/span&gt;Uploading photo...&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;span&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;div&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;table&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;border&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="0"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;cellpadding&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="0"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;cellspacing&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="2"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;style&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="width:100%"&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tbody&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="tdProgress1"&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="tdProgress2"&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="tdProgress3"&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="tdProgress4"&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="tdProgress5"&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="tdProgress6"&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="tdProgress7"&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="tdProgress8"&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="tdProgress9"&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="tdProgress10"&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;                &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;tbody&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;table&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;div&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;div&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;fieldset&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;As you see that we are using few &lt;font face="Courier New"&gt;divs&lt;/font&gt; to show and hide the upload form and the progress bar. The important thing is we are binding the &lt;font face="Courier New"&gt;initPhotoUpload&lt;/font&gt; in the frame &lt;font face="Courier New"&gt;load&lt;/font&gt; event. Now let us check the &lt;font face="Courier New"&gt;iframe&lt;/font&gt; source page markup.&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;form&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="photoUpload"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;enctype&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="multipart/form-data"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;div&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;input&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="filPhoto"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="file"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="server"/&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;div&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;div&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="divUpload"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;style&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="padding-top:4px"&amp;gt;
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;input&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;id&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="btnUpload"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="button"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;value&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Upload Photo"&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;/&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;div&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;form&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;font face="Courier New"&gt;iframe&lt;/font&gt; source page contains only a file upload control and a button to post the form. Now lets get back to the main page &lt;font face="Courier New"&gt;initPhotoUpload&lt;/font&gt; function and lets check how it is implemented:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt; initPhotoUpload()
{
    _divFrame = document.getElementById(&lt;span style="color: rgb(163,21,21)"&gt;'divFrame'&lt;/span&gt;);
    _divUploadMessage = document.getElementById(&lt;span style="color: rgb(163,21,21)"&gt;'divUploadMessage'&lt;/span&gt;);
    _divUploadProgress = document.getElementById(&lt;span style="color: rgb(163,21,21)"&gt;'divUploadProgress'&lt;/span&gt;);
    _ifrPhoto = document.getElementById(&lt;span style="color: rgb(163,21,21)"&gt;'ifrPhoto'&lt;/span&gt;);

    &lt;span style="color: rgb(0,0,255)"&gt;var&lt;/span&gt; btnUpload = _ifrPhoto.contentWindow.document.getElementById(&lt;span style="color: rgb(163,21,21)"&gt;'btnUpload'&lt;/span&gt;);

    btnUpload.onclick = &lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;(&lt;span style="color: rgb(0,0,255)"&gt;event&lt;/span&gt;)
    {
        &lt;span style="color: rgb(0,0,255)"&gt;var&lt;/span&gt; filPhoto = _ifrPhoto.contentWindow.document.getElementById(&lt;span style="color: rgb(163,21,21)"&gt;'filPhoto'&lt;/span&gt;);

        &lt;span style="color: rgb(0,128,0)"&gt;//Baisic validation for Photo
&lt;/span&gt;        _divUploadMessage.style.display = &lt;span style="color: rgb(163,21,21)"&gt;'none'&lt;/span&gt;;

        &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (filPhoto.value.length == 0)
        {
            _divUploadMessage.innerHTML = &lt;span style="color: rgb(163,21,21)"&gt;'&amp;lt;span style=\"color:#ff0000\"&amp;gt;Please specify the file.&amp;lt;/span&amp;gt;'&lt;/span&gt;;
            _divUploadMessage.style.display = &lt;span style="color: rgb(163,21,21)"&gt;''&lt;/span&gt;;
            filPhoto.focus();
            &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt;;
        }

        &lt;span style="color: rgb(0,0,255)"&gt;var&lt;/span&gt; regExp = /^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))(.jpg|.JPG|.gif|.GIF|.png|.PNG|.bmp|.BMP)$/;

        &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (!regExp.test(filPhoto.value)) &lt;span style="color: rgb(0,128,0)"&gt;//Somehow the expression does not work in Opera
&lt;/span&gt;        {
            _divUploadMessage.innerHTML = &lt;span style="color: rgb(163,21,21)"&gt;'&amp;lt;span style=\"color:#ff0000\"&amp;gt;Invalid file type. Only supports jpg, gif, png and bmp.&amp;lt;/span&amp;gt;'&lt;/span&gt;;
            _divUploadMessage.style.display = &lt;span style="color: rgb(163,21,21)"&gt;''&lt;/span&gt;;
            filPhoto.focus();
            &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt;;
        }

        beginPhotoUploadProgress();
        _ifrPhoto.contentWindow.document.getElementById(&lt;span style="color: rgb(163,21,21)"&gt;'photoUpload'&lt;/span&gt;).submit();
        _divFrame.style.display = &lt;span style="color: rgb(163,21,21)"&gt;'none'&lt;/span&gt;;
    }
}&lt;/pre&gt;
&lt;p&gt;Once the &lt;font face="Courier New"&gt;iframe&lt;/font&gt; is loaded we are setting few module level variables (All module level variables are prefixed with _ (underscore) character in this example) to DOM elements, we are also getting the reference of the Upload button which is in the &lt;font face="Courier New"&gt;iframe&lt;/font&gt; and creating its &lt;font face="Courier New"&gt;click&lt;/font&gt; handler. In the click handler first we are doing few basic validation such as the file upload control is not empty or the file that is specified has a valid image file extension. Once the validation qualifies then we are calling the &lt;font face="Courier New"&gt;beginPhotoUploadProgress&lt;/font&gt; function (discussed next) and submitting the iframe form. The &lt;font face="Courier New"&gt;beginPhotoUploadProgress&lt;/font&gt; function is the first of three functions which are used to show the dummy progress bar. Let us see how these functions are written:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt; beginPhotoUploadProgress()
{
    _divUploadProgress.style.display = &lt;span style="color: rgb(163,21,21)"&gt;''&lt;/span&gt;;
    clearPhotoUploadProgress();
    _photoUploadProgressTimer = setTimeout(updatePhotoUploadProgress, PROGRESS_INTERVAL);
}

&lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt; clearPhotoUploadProgress()
{
    &lt;span style="color: rgb(0,0,255)"&gt;for&lt;/span&gt; (&lt;span style="color: rgb(0,0,255)"&gt;var&lt;/span&gt; i = 1; i &amp;lt;= _maxLoop; i++)
    {
        document.getElementById(&lt;span style="color: rgb(163,21,21)"&gt;'tdProgress'&lt;/span&gt; + i).style.backgroundColor = &lt;span style="color: rgb(163,21,21)"&gt;'transparent'&lt;/span&gt;;
    }

    document.getElementById(&lt;span style="color: rgb(163,21,21)"&gt;'tdProgress1'&lt;/span&gt;).style.backgroundColor = PROGRESS_COLOR;
    _loopCounter = 1;
}

&lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt; updatePhotoUploadProgress()
{
    _loopCounter += 1;

    &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (_loopCounter &amp;lt;= _maxLoop)
    {
        document.getElementById(&lt;span style="color: rgb(163,21,21)"&gt;'tdProgress'&lt;/span&gt; + _loopCounter).style.backgroundColor = PROGRESS_COLOR;
    }
    &lt;span style="color: rgb(0,0,255)"&gt;else&lt;/span&gt; 
    {
        clearPhotoUploadProgress();
    }

    &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (_photoUploadProgressTimer)
    {
        clearTimeout(_photoUploadProgressTimer);
    }

    _photoUploadProgressTimer = setTimeout(updatePhotoUploadProgress, PROGRESS_INTERVAL);
}&lt;/pre&gt;
&lt;p&gt;As we can see we are basically using the timer (&lt;font face="Courier New"&gt;window.setTimeout&lt;/font&gt;) to show the dummy progress in these functions. Now lets see what happens in the server side when the &lt;font face="Courier New"&gt;iframe&lt;/font&gt; page posts.&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;const&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; SCRIPT_TEMPLATE = &lt;span style="color: rgb(163,21,21)"&gt;"&amp;lt;"&lt;/span&gt; + &lt;span style="color: rgb(163,21,21)"&gt;"script "&lt;/span&gt; + &lt;span style="color: rgb(163,21,21)"&gt;"type=\"text/javascript\"&amp;gt;window.parent.photoUploadComplete('{0}', {1});"&lt;/span&gt; + &lt;span style="color: rgb(163,21,21)"&gt;"&amp;lt;"&lt;/span&gt; + &lt;span style="color: rgb(163,21,21)"&gt;"/script"&lt;/span&gt; + &lt;span style="color: rgb(163,21,21)"&gt;"&amp;gt;"&lt;/span&gt;;

&lt;span style="color: rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color: rgb(0,0,255)"&gt;object&lt;/span&gt; sender, &lt;span style="color: rgb(43,145,175)"&gt;EventArgs&lt;/span&gt; e)
{
    &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (IsPostBack)
    {
        &lt;span style="color: rgb(0,128,0)"&gt;//Sleeping for 10 seconds, fake delay, You should not it try at home.
&lt;/span&gt;        System.Threading.&lt;span style="color: rgb(43,145,175)"&gt;Thread&lt;/span&gt;.Sleep(10 * 1000);
        UploadPhoto();
    }
}

&lt;span style="color: rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; UploadPhoto()
{
    &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; script = &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;.Empty;

    &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; ((filPhoto.PostedFile != &lt;span style="color: rgb(0,0,255)"&gt;null&lt;/span&gt;) &amp;amp;&amp;amp; (filPhoto.PostedFile.ContentLength &amp;gt; 0))
    {
        &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (!IsValidImageFile(filPhoto))
        {
            script = &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;.Format(SCRIPT_TEMPLATE, &lt;span style="color: rgb(163,21,21)"&gt;"The uploaded file is not a valid image file."&lt;/span&gt;, &lt;span style="color: rgb(163,21,21)"&gt;"true"&lt;/span&gt;);
        }
    }
    &lt;span style="color: rgb(0,0,255)"&gt;else
&lt;/span&gt;    {
        script = &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;.Format(SCRIPT_TEMPLATE, &lt;span style="color: rgb(163,21,21)"&gt;"Please specify a valid file."&lt;/span&gt;, &lt;span style="color: rgb(163,21,21)"&gt;"true"&lt;/span&gt;);
    }

    &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;.IsNullOrEmpty(script))
    {
        &lt;span style="color: rgb(0,128,0)"&gt;//Uploaded file is valid, now we can do whatever we like to do, copying it file system,
&lt;/span&gt;        &lt;span style="color: rgb(0,128,0)"&gt;//saving it in db etc.

&lt;/span&gt;        &lt;span style="color: rgb(0,128,0)"&gt;//Your Logic goes here

&lt;/span&gt;        script = &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;.Format(SCRIPT_TEMPLATE, &lt;span style="color: rgb(163,21,21)"&gt;"Photo uploaded."&lt;/span&gt;, &lt;span style="color: rgb(163,21,21)"&gt;"false"&lt;/span&gt;);
    }

    &lt;span style="color: rgb(0,128,0)"&gt;//Now inject the script which will fire when the page is refreshed.
&lt;/span&gt;    ClientScript.RegisterStartupScript(&lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;.GetType(), &lt;span style="color: rgb(163,21,21)"&gt;"uploadNotify"&lt;/span&gt;, script);
}

&lt;span style="color: rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;bool&lt;/span&gt; IsValidImageFile(&lt;span style="color: rgb(43,145,175)"&gt;HtmlInputFile&lt;/span&gt; file)
{
    &lt;span style="color: rgb(0,0,255)"&gt;try
&lt;/span&gt;    {
        &lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; (&lt;span style="color: rgb(43,145,175)"&gt;Bitmap&lt;/span&gt; bmp = &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Bitmap&lt;/span&gt;(file.PostedFile.InputStream))
        {
            &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;true&lt;/span&gt;;
        }
    }
    &lt;span style="color: rgb(0,0,255)"&gt;catch&lt;/span&gt; (&lt;span style="color: rgb(43,145,175)"&gt;ArgumentException&lt;/span&gt;)
    {
        &lt;span style="color: rgb(0,128,0)"&gt;//throws exception if not valid image
&lt;/span&gt;    }

    &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;false&lt;/span&gt;;
}
&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;In the server side we are first doing some basic validation such as the file upload control has file and the file is a valid image file. Once the validation is done we are injecting some javascript which will be executed when the page is loaded in the browser. The javascript calls the main page &lt;font face="Courier New"&gt;photoUploadComplete&lt;/font&gt; function which shows the success/failure or the validation message of the upload. Lets see the javascript function &lt;font face="Courier New"&gt;photoUploadComplete&lt;/font&gt; of the main page.&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt; photoUploadComplete(message, isError)
{
    clearPhotoUploadProgress();

    &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (_photoUploadProgressTimer)
    {
        clearTimeout(_photoUploadProgressTimer);
    }

    _divUploadProgress.style.display = &lt;span style="color: rgb(163,21,21)"&gt;'none'&lt;/span&gt;;
    _divUploadMessage.style.display = &lt;span style="color: rgb(163,21,21)"&gt;'none'&lt;/span&gt;;
    _divFrame.style.display = &lt;span style="color: rgb(163,21,21)"&gt;''&lt;/span&gt;;

    &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (message.length)
    {
        &lt;span style="color: rgb(0,0,255)"&gt;var&lt;/span&gt; color = (isError) ? &lt;span style="color: rgb(163,21,21)"&gt;'#ff0000'&lt;/span&gt; : &lt;span style="color: rgb(163,21,21)"&gt;'#008000'&lt;/span&gt;;

        _divUploadMessage.innerHTML = &lt;span style="color: rgb(163,21,21)"&gt;'&amp;lt;span style=\"color:'&lt;/span&gt; + color + &lt;span style="color: rgb(163,21,21)"&gt;'\;font-weight:bold"&amp;gt;'&lt;/span&gt; + message + &lt;span style="color: rgb(163,21,21)"&gt;'&amp;lt;/span&amp;gt;'&lt;/span&gt;;
        _divUploadMessage.style.display = &lt;span style="color: rgb(163,21,21)"&gt;''&lt;/span&gt;;

        &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (isError)
        {
            _ifrPhoto.contentWindow.document.getElementById(&lt;span style="color: rgb(163,21,21)"&gt;'filPhoto'&lt;/span&gt;).focus();
        }
    }
}&lt;/pre&gt;
&lt;p&gt;The function simply hides the progress bar and shows the upload control then it shows the message in colored text which is sent from the server.&lt;/p&gt;
&lt;p&gt;I hope you can easily implment it in Ajax UpdatePanel, if not please let me know, I will show it in next post.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Download&lt;/strong&gt; : &lt;a href="http://www.box.net/shared/d72om3h1g2" target="_blank"&gt;Complete Solution&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://www.dotnetkicks.com/kick/?url=http://geekswithblogs.net/rashid/archive/2007/08/01/Create-An-Ajax-Style-File-Upload.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://geekswithblogs.net/rashid/archive/2007/08/01/Create-An-Ajax-Style-File-Upload.aspx" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114308"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114308" 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/rashid/aggbug/114308.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kazi Manzur Rashid</dc:creator>
            <guid>http://geekswithblogs.net/rashid/archive/2007/08/01/Create-An-Ajax-Style-File-Upload.aspx</guid>
            <pubDate>Wed, 01 Aug 2007 08:36:58 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rashid/comments/114308.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rashid/archive/2007/08/01/Create-An-Ajax-Style-File-Upload.aspx#feedback</comments>
            <slash:comments>70</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/rashid/comments/commentRss/114308.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rashid/services/trackbacks/114308.aspx</trackback:ping>
        </item>
        <item>
            <title>Implement Yahoo's YSlow in your Asp.net pages</title>
            <link>http://geekswithblogs.net/rashid/archive/2007/07/29/Implement-Yahoos-YSlow-in-your-Asp.net-pages.aspx</link>
            <description>&lt;p&gt;I have got quite a bit of comments and feedbacks on my &lt;a href="http://geekswithblogs.net/rashid/archive/2007/07/25/Combine-Multiple-JavaScript-and-CSS-Files-and-Remove-Overheads.aspx"&gt;previous post&lt;/a&gt; where I shown how to combine multiple JS and CSS Files into one. So I decided to enhance it a bit more. Now it Supports:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;GZip or Deflate Compression based upon the browser header. Can be turned on/off from web.config  &lt;/li&gt;&lt;li&gt;Minifier for both JS and CSS files. Although it is recommended to keep separate version of these files for both development and production instead of minifying it runtime. There are plenty of online and offline tool available to do it. This can be also turned on/off from web.config.  &lt;/li&gt;&lt;li&gt;New Setting in the web.config for Cache Duration instead of hardcoding it in the code.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;If you have checked the recent &lt;a href="http://com3.devnet.re3.yahoo.com/yslow/" target="_blank"&gt;YSlow&lt;/a&gt; of Yahoo which works on top of Firebug, you already know that the above items are highly recommended for creating High Performance web applications.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Download&lt;/strong&gt;: &lt;a href="http://www.box.net/shared/3yre9xf7my" target="_blank"&gt;Enhanced Version&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a target="_blank" href="http://www.dotnetkicks.com/kick/?url=http://geekswithblogs.net/rashid/archive/2007/07/29/Implement-Yahoos-YSlow-in-your-Asp.net-pages.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://geekswithblogs.net/rashid/archive/2007/07/29/Implement-Yahoos-YSlow-in-your-Asp.net-pages.aspx" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114250"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114250" 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/rashid/aggbug/114250.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kazi Manzur Rashid</dc:creator>
            <guid>http://geekswithblogs.net/rashid/archive/2007/07/29/Implement-Yahoos-YSlow-in-your-Asp.net-pages.aspx</guid>
            <pubDate>Sun, 29 Jul 2007 10:14:46 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rashid/comments/114250.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rashid/archive/2007/07/29/Implement-Yahoos-YSlow-in-your-Asp.net-pages.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/rashid/comments/commentRss/114250.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rashid/services/trackbacks/114250.aspx</trackback:ping>
        </item>
        <item>
            <title>Combine Multiple JavaScript and CSS Files and Remove Overheads</title>
            <link>http://geekswithblogs.net/rashid/archive/2007/07/25/Combine-Multiple-JavaScript-and-CSS-Files-and-Remove-Overheads.aspx</link>
            <description>&lt;p&gt;When developing a large web application especially if it is Ajax enabled, we often ended up with a larger number of JavaScript and Cascading Stylesheet files and it is quite common that more than one JavaScript file is involved for a single functionality. For example, if you are using DataTable widget of &lt;a href="http://developer.yahoo.com/yui/" target="_blank"&gt;Yahoo User Interface&lt;/a&gt; you have to add &lt;font face="Courier New"&gt;yahoo-dom-event.js, connection-min.js, dragdrop-min.js, json.js, datasource-beta-min.js, datatable-beta-min.js&lt;/font&gt; (&lt;a href="http://developer.yahoo.com/yui/datatable/" target="_blank"&gt;as per the example&lt;/a&gt;). When a browser encounters an external resource file such as Image, CSS, JS it opens a separate connection to download the file which actually add extra overhead both to server and the browser. To minimize it we can manually combine multiple JS and CSS file into a single large file, but this makes development life harder. Instead we can programmatically combine these files which we will see in the next section.&lt;/p&gt; &lt;p&gt;To combine these resource file we can utilize the Generic Handler (&lt;font face="Courier New"&gt;.ashx&lt;/font&gt;)  file which comes with the Asp.net, we can also put some directive in the &lt;font face="Courier New"&gt;web.config&lt;/font&gt; file to conditionally combines the resource files depending upon the settings. First, lets see the &lt;font face="Courier New"&gt;web.config&lt;/font&gt; file.&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;appSettings&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;add&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;UseFileSet&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;value&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;true&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;/&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;add&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;VersionNo&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;value&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;1.0&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;/&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;add&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;FileSet_CSS_Style1&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;value&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;Css/StyleSheet1.css,Css/StyleSheet2.css,Css/StyleSheet3.css,Css/StyleSheet4.css&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; /&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;add&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;FileSet_JS_Functionality1&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;value&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;=&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt;Scripts/JScript1.js,Scripts/JScript2.js,Scripts/JScript3.js,Scripts/JScript4.js&lt;/span&gt;"&lt;span style="color: rgb(0,0,255)"&gt; /&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;appSettings&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;As you can see there three kind of settings, first whether we will use the file set which is specified in the consequent settings, second the version number which we will discuss later and third different file sets. Each fileset contains the fileset name as the key and files location in comma separated value. Now lets see how do we embed this resource files in an &lt;font face="Courier New"&gt;aspx&lt;/font&gt; page:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (ResourceHandler.UseFileSet)
   {
&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;link&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="text/css"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;href&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="ResourceHandler.ashx?v=&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt;= ResourceHandler.VersionNo &lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;&amp;amp;fileSet=FileSet_CSS_Style1&amp;amp;type=text/css"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;rel&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Stylesheet"/&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;script&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="text/javascript"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;src&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="ResourceHandler.ashx?v=&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;/span&gt;= ResourceHandler.VersionNo &lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;&amp;amp;fileSet=JS_Functionality1&amp;amp;type=application/x-javascript"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;script&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%
&lt;/span&gt;   }
   &lt;span style="color: rgb(0,0,255)"&gt;else
&lt;/span&gt;   {
&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;link&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;href&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Css/StyleSheet1.css"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;rel&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="stylesheet"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="text/css"&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;/&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;link&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;href&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Css/StyleSheet2.css"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;rel&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="stylesheet"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="text/css"&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;/&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;link&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;href&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Css/StyleSheet3.css"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;rel&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="stylesheet"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="text/css"&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;/&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;link&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;href&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Css/StyleSheet4.css"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;rel&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="stylesheet"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="text/css"&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;/&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;script&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="text/javascript"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;src&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Scripts/JScript1.js"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;script&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;script&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="text/javascript"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;src&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Scripts/JScript2.js"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;script&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;script&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="text/javascript"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;src&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Scripts/JScript3.js"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;script&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;script&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="text/javascript"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;src&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Scripts/JScript4.js"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;script&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%
&lt;/span&gt;   }
&lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;As you can see we are using Asp.net syntax to conditionally add these resource file depending upon the settings. When we are in development mode we can turn it off  from the &lt;font face="Courier New"&gt;web.config&lt;/font&gt; file. But the problem with using generic resource handler is the files never gets cached in the browser. So our generic handler must also inject proper caching headers along with combining files. Now lets see how the generic handler is implemented:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="background: rgb(255,238,98)"&gt;&amp;lt;%&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;@&lt;/span&gt; &lt;span style="color: rgb(163,21,21)"&gt;WebHandler&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Language&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="C#"&lt;/span&gt; &lt;span style="color: rgb(255,0,0)"&gt;Class&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="ResourceHandler"&lt;/span&gt; &lt;span style="background: rgb(255,238,98)"&gt;%&amp;gt;
&lt;span style="color: rgb(0,0,255)"&gt;&lt;/span&gt;using&lt;/span&gt; System;
&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System.IO;
&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System.Web;
&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System.Configuration;

&lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;class&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;ResourceHandler&lt;/span&gt; : &lt;span style="color: rgb(43,145,175)"&gt;IHttpHandler
&lt;/span&gt;{
    &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;bool&lt;/span&gt; UseFileSet
    {
        &lt;span style="color: rgb(0,0,255)"&gt;get
&lt;/span&gt;        {
            &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Convert&lt;/span&gt;.ToBoolean(&lt;span style="color: rgb(43,145,175)"&gt;ConfigurationManager&lt;/span&gt;.AppSettings[&lt;span style="color: rgb(163,21,21)"&gt;"UseFileSet"&lt;/span&gt;]);
        }
    }

    &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; VersionNo
    {
        &lt;span style="color: rgb(0,0,255)"&gt;get
&lt;/span&gt;        {
            &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;ConfigurationManager&lt;/span&gt;.AppSettings[&lt;span style="color: rgb(163,21,21)"&gt;"VersionNo"&lt;/span&gt;];
        }
    }

    &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;bool&lt;/span&gt; IsReusable
    {
        &lt;span style="color: rgb(0,0,255)"&gt;get
&lt;/span&gt;        {
            &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;true&lt;/span&gt;;
        }
    }

    &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; ProcessRequest (&lt;span style="color: rgb(43,145,175)"&gt;HttpContext&lt;/span&gt; context)
    {
        &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; fileSet = context.Request.QueryString[&lt;span style="color: rgb(163,21,21)"&gt;"fileSet"&lt;/span&gt;];

        &lt;span style="color: rgb(0,128,0)"&gt;//Basic Validation
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;.IsNullOrEmpty(fileSet))
        {
            &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt;;
        }

        &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; contetType = context.Request.QueryString[&lt;span style="color: rgb(163,21,21)"&gt;"type"&lt;/span&gt;];

        &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;.IsNullOrEmpty(contetType))
        {
            &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt;;
        }

        &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; files = &lt;span style="color: rgb(43,145,175)"&gt;ConfigurationManager&lt;/span&gt;.AppSettings[&lt;span style="color: rgb(163,21,21)"&gt;"FileSet_"&lt;/span&gt; + fileSet];

        &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;.IsNullOrEmpty(files))
        {
            &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt;;
        }

        &lt;span style="color: rgb(0,128,0)"&gt;//Get the list of files specified in the FileSet
&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;[] fileNames = files.Split(&lt;span style="color: rgb(163,21,21)"&gt;','&lt;/span&gt;);

        &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; ((fileNames != &lt;span style="color: rgb(0,0,255)"&gt;null&lt;/span&gt;) &amp;amp;&amp;amp; (fileNames.Length &amp;gt; 0))
        {
            &lt;span style="color: rgb(0,128,0)"&gt;//Write each files in the response
&lt;/span&gt;            &lt;span style="color: rgb(0,0,255)"&gt;for&lt;/span&gt; (&lt;span style="color: rgb(0,0,255)"&gt;int&lt;/span&gt; i = 0; i &amp;lt; fileNames.Length; i++)
            {
                context.Response.Write(&lt;span style="color: rgb(43,145,175)"&gt;File&lt;/span&gt;.ReadAllText(context.Server.MapPath(fileNames[i])));
            }

            &lt;span style="color: rgb(0,128,0)"&gt;//Set the content type
&lt;/span&gt;            context.Response.ContentType = contetType;

            &lt;span style="color: rgb(0,128,0)"&gt;// Cache the resource for 7 Days
&lt;/span&gt;            &lt;span style="color: rgb(43,145,175)"&gt;CacheUtility&lt;/span&gt;.Cache(&lt;span style="color: rgb(43,145,175)"&gt;TimeSpan&lt;/span&gt;.FromDays(7));
        }
    }
}&lt;/pre&gt;
&lt;p&gt;As we can see the Handler contains some static property which we used when embedding in the aspx files.  The file merging is done in the &lt;font face="Courier New"&gt;ProcessRequest&lt;/font&gt; method. In this method we are reading the physical files which is specified in the web.config fileset and writing it in the Asp.net &lt;font face="Courier New"&gt;Response&lt;/font&gt; object and at the end we are using a helper class &lt;font face="Courier New"&gt;CacheUtility&lt;/font&gt; to cache the response. Now let see how the this class is implemented:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System;
&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System.Web;
&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System.Reflection;

&lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;class&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;CacheUtility
&lt;/span&gt;{
    &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; Cache(&lt;span style="color: rgb(43,145,175)"&gt;TimeSpan&lt;/span&gt; duration)
    {
        &lt;span style="color: rgb(43,145,175)"&gt;HttpCachePolicy&lt;/span&gt; cache = &lt;span style="color: rgb(43,145,175)"&gt;HttpContext&lt;/span&gt;.Current.Response.Cache;

        &lt;span style="color: rgb(43,145,175)"&gt;FieldInfo&lt;/span&gt; maxAgeField = cache.GetType().GetField(&lt;span style="color: rgb(163,21,21)"&gt;"_maxAge"&lt;/span&gt;, &lt;span style="color: rgb(43,145,175)"&gt;BindingFlags&lt;/span&gt;.Instance | &lt;span style="color: rgb(43,145,175)"&gt;BindingFlags&lt;/span&gt;.NonPublic);
        maxAgeField.SetValue(cache, duration);

        cache.SetCacheability(&lt;span style="color: rgb(43,145,175)"&gt;HttpCacheability&lt;/span&gt;.Public);
        cache.SetExpires(&lt;span style="color: rgb(43,145,175)"&gt;DateTime&lt;/span&gt;.Now.Add(duration));
        cache.SetMaxAge(duration);
        cache.AppendCacheExtension(&lt;span style="color: rgb(163,21,21)"&gt;"must-revalidate, proxy-revalidate"&lt;/span&gt;);
    }
}
&lt;/pre&gt;
&lt;p&gt;As you can see we are not only using the regular caching methods of Asp.net, we are also using some reflection code to set the proper &lt;font face="Courier New"&gt;cache-control&lt;/font&gt; header. You can find the reason why the reflection is used from these two links &lt;a href="http://www.codeproject.com/useritems/ScriptMethodClientCache.asp" target="_blank"&gt;Client-side caching for script methods access in ASP.NET AJAX&lt;/a&gt; and &lt;a href="http://www.codeproject.com/Ajax/aspnetajaxtips.asp" target="_blank"&gt;ASP.NET AJAX under the hood secrets&lt;/a&gt;. If you want to know more about the &lt;font face="Courier New"&gt;cache-control&lt;/font&gt; header then read &lt;a href="http://www.mnot.net/cache_docs/" target="_blank"&gt;Caching Details&lt;/a&gt;. If any of the files get modified then update the version number in &lt;font face="Courier New"&gt;web.config&lt;/font&gt;, it will ensure that the latest files get downloaded due to the query string.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Download&lt;/strong&gt;: &lt;a href="http://www.box.net/shared/40q6kq38m8" target="_blank"&gt;Complete Solution&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://geekswithblogs.net/rashid/archive/2007/07/25/Combine-Multiple-JavaScript-and-CSS-Files-and-Remove-Overheads.aspx" target="_blank"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://geekswithblogs.net/rashid/archive/2007/07/25/Combine-Multiple-JavaScript-and-CSS-Files-and-Remove-Overheads.aspx" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114161"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114161" 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/rashid/aggbug/114161.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kazi Manzur Rashid</dc:creator>
            <guid>http://geekswithblogs.net/rashid/archive/2007/07/25/Combine-Multiple-JavaScript-and-CSS-Files-and-Remove-Overheads.aspx</guid>
            <pubDate>Wed, 25 Jul 2007 20:57:46 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rashid/comments/114161.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rashid/archive/2007/07/25/Combine-Multiple-JavaScript-and-CSS-Files-and-Remove-Overheads.aspx#feedback</comments>
            <slash:comments>12</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/rashid/comments/commentRss/114161.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rashid/services/trackbacks/114161.aspx</trackback:ping>
        </item>
        <item>
            <title>I am the winner for the Month of June</title>
            <link>http://geekswithblogs.net/rashid/archive/2007/07/19/I-am-the-winner-for-the-Month-of-June.aspx</link>
            <description>&lt;div style="float: left"&gt;&lt;img alt="" src="http://dotnetslackers.com/images/contest/XBox360CoreSystem.jpg" /&gt; &lt;/div&gt; &lt;p&gt;This morning &lt;a href="http://dotnetslackers.com/" target="_blank"&gt;dotnetslackers&lt;/a&gt; announced me as the winner of the XBox article content for the &lt;a href="http://dotnetslackers.com/contest/xbox/#winners" target="_blank"&gt;month of June&lt;/a&gt;. Special thanks to everyone who vote my &lt;a href="http://dotnetslackers.com/articles/ajax/ASPNETAJAXControlDevelopment.aspx" target="_blank"&gt;Asp.net Ajax Control Development&lt;/a&gt; article. Some of my friends asked me why did I choose to write in &lt;a href="http://dotnetslackers.com/" target="_blank"&gt;dotnetslackers&lt;/a&gt; over &lt;a href="http://www.codeproject.com/" target="_blank"&gt;codeproject&lt;/a&gt; when &lt;a href="http://www.codeproject.com/" target="_blank"&gt;codeproject&lt;/a&gt; got &lt;a href="http://www.alexa.com/" target="_blank"&gt;8x more traffic&lt;/a&gt;. The reason behind choosing &lt;a href="http://dotnetslackers.com/" target="_blank"&gt;dotnetslackers&lt;/a&gt;, I think it got much more Asp.net Ajax specialist as a member comparing to &lt;a href="http://www.codeproject.com/" target="_blank"&gt;codeproject&lt;/a&gt; and once it won the &lt;a href="http://dotnetslackers.com/community/blogs/sonukapoor/archive/2006/09/27/DotNetSlackers-wins-the-ASP.NET-Mashup-Atlas-Contest.aspx" target="_blank"&gt;Asp.net Atlas Mashup contest&lt;/a&gt; of &lt;a href="http://www.asp.net/" target="_blank"&gt;Asp.net&lt;/a&gt; and these make me feel that there is no better and friendlier place other than this for my &lt;a href="http://dotnetslackers.com/articles/AJAX/default.aspx" target="_blank"&gt;Asp.net Ajax Articles&lt;/a&gt;. But I have few suggestions for &lt;a href="http://dotnetslackers.com/" target="_blank"&gt;dotnetslackers&lt;/a&gt; to make it more attractive for the developer community:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Publish Article Instantly, same as &lt;a href="http://www.codeproject.com/" target="_blank"&gt;codeproject&lt;/a&gt; Unedited Reader Contribution.  &lt;/li&gt;&lt;li&gt;A Better Navigation System, Add Editors Pick, Best of this week/month etc.  &lt;/li&gt;&lt;li&gt;Hierarchical Comments section for each article which allows user to post html as well as code. Dump the complete comment in Mail. Send mail when there is a new topic/reply.  &lt;/li&gt;&lt;li&gt;Stop Paid Articles (I am not sure how many good article they found comparing to unpaid) instead find sponsors for article competition, may be for different categories too.  &lt;/li&gt;&lt;li&gt;The Home page is too bulky (385KB as per Firebug). 2x heavy comparing to &lt;a href="http://www.codeproject.com/" target="_blank"&gt;codeproject&lt;/a&gt; and my startpage &lt;a href="http://www.pageflakes.com" target="_blank"&gt;pageflakes&lt;/a&gt;  &lt;/li&gt;&lt;li&gt;A Better Search System (Currently it only scans through news, no article get indexed).  &lt;/li&gt;&lt;li&gt;Allow Article Authors to add meta tag (SEO Optimization)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;I hope they will take my suggestion seriously and start implementing the above features one by one.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114028"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114028" 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/rashid/aggbug/114028.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kazi Manzur Rashid</dc:creator>
            <guid>http://geekswithblogs.net/rashid/archive/2007/07/19/I-am-the-winner-for-the-Month-of-June.aspx</guid>
            <pubDate>Thu, 19 Jul 2007 06:51:54 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rashid/comments/114028.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rashid/archive/2007/07/19/I-am-the-winner-for-the-Month-of-June.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/rashid/comments/commentRss/114028.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rashid/services/trackbacks/114028.aspx</trackback:ping>
        </item>
        <item>
            <title>Cancel a Web Service Call in Asp.net Ajax</title>
            <link>http://geekswithblogs.net/rashid/archive/2007/07/14/Cancel-a-Web-Service-Call-in-Asp.net-Ajax.aspx</link>
            <description>&lt;p&gt;In this post I will show you how to cancel a web Service call after it is invoked, I will also provide you some interesting findings (Maybe a Bug) in Asp.net Ajax Network Layer. There are plenty of examples available on how to abort an UpdatePanel AsyncPostback but none for the WebService. The following will show you how to do it.&lt;/p&gt; &lt;p&gt;Since we are going to cancel a call we need a  web method which wait for a long time to complete:&lt;/p&gt; &lt;p&gt;The Web Method:&lt;/p&gt;&lt;pre class="code"&gt;[&lt;span style="color: rgb(43,145,175)"&gt;WebMethod&lt;/span&gt;()]
&lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; LongOperation(&lt;span style="color: rgb(0,0,255)"&gt;int&lt;/span&gt; miliseconds)
{
    System.Threading.&lt;span style="color: rgb(43,145,175)"&gt;Thread&lt;/span&gt;.Sleep(miliseconds);
    &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; &lt;span style="color: rgb(163,21,21)"&gt;"Task Complete"&lt;/span&gt;;
}&lt;/pre&gt;
&lt;p&gt;Now lets check the client part. If you are already familiar with Web Service calling in JavaScript, I hope you know that there is always a JavaScript Proxy class involved for that Web Service. This Proxy class is inherited from the &lt;font face="Courier New"&gt;Sys.Net.WebServiceProxy&lt;/font&gt; which contains a single method &lt;font face="Courier New"&gt;invoke&lt;/font&gt;. If you check the &lt;a href="http://ajax.asp.net/docs/ClientReference/Sys.Net/WebServiceProxyClass/WebServiceProxyInvokeMethod.aspx" target="_blank"&gt;Ajax Documentation&lt;/a&gt; you will find that this &lt;font face="Courier New"&gt;invoke&lt;/font&gt; method returns a &lt;font face="Courier New"&gt;WebRequest&lt;/font&gt; object which is used to call Web Service method, it is also mentioned that this &lt;font face="Courier New"&gt;WebRequest&lt;/font&gt; object can be also used to cancel the call. Now lets see what is the generated Proxy class looks like. You can easily generate the proxy class by appending &lt;font face="Courier New"&gt;/js&lt;/font&gt; in the Web Service URL. &lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;var&lt;/span&gt; TestService=&lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;() {
TestService.initializeBase(&lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;);
&lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;._timeout = 0;
&lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;._userContext = &lt;span style="color: rgb(0,0,255)"&gt;null&lt;/span&gt;;
&lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;._succeeded = &lt;span style="color: rgb(0,0,255)"&gt;null&lt;/span&gt;;
&lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;._failed = &lt;span style="color: rgb(0,0,255)"&gt;null&lt;/span&gt;;
}
TestService.prototype={
&lt;strong&gt;&lt;font size="3"&gt;LongOperation:&lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;(miliseconds,succeededCallback, failedCallback, userContext) {
&lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;._invoke(TestService.get_path(), &lt;span style="color: rgb(163,21,21)"&gt;'LongOperation'&lt;/span&gt;,&lt;span style="color: rgb(0,0,255)"&gt;false&lt;/span&gt;,{miliseconds:miliseconds},succeededCallback,failedCallback,userContext); }}
&lt;/font&gt;&lt;/strong&gt;TestService.registerClass(&lt;span style="color: rgb(163,21,21)"&gt;'TestService'&lt;/span&gt;,Sys.Net.WebServiceProxy);
&lt;font size="3"&gt;&lt;strong&gt;TestService._staticInstance = &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; TestService();&lt;/strong&gt;&lt;/font&gt;
TestService.set_path = &lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;(value) { TestService._staticInstance.set_path(value); }
TestService.get_path = &lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;() { &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; TestService._staticInstance.get_path(); }
TestService.set_timeout = &lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;(value) { TestService._staticInstance.set_timeout(value); }
TestService.get_timeout = &lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;() { &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; TestService._staticInstance.get_timeout(); }
TestService.set_defaultUserContext = &lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;(value) { TestService._staticInstance.set_defaultUserContext(value); }
TestService.get_defaultUserContext = &lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;() { &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; TestService._staticInstance.get_defaultUserContext(); }
TestService.set_defaultSucceededCallback = &lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;(value) { TestService._staticInstance.set_defaultSucceededCallback(value); }
TestService.get_defaultSucceededCallback = &lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;() { &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; TestService._staticInstance.get_defaultSucceededCallback(); }
TestService.set_defaultFailedCallback = &lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;(value) { TestService._staticInstance.set_defaultFailedCallback(value); }
TestService.get_defaultFailedCallback = &lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;() { &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; TestService._staticInstance.get_defaultFailedCallback(); }
TestService.set_path(&lt;span style="color: rgb(163,21,21)"&gt;"TestService.asmx"&lt;/span&gt;);
&lt;font size="3"&gt;&lt;strong&gt;TestService.LongOperation= &lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;(miliseconds,onSuccess,onFailed,userContext) {TestService._staticInstance.LongOperation(miliseconds,onSuccess,onFailed,userContext); }
&lt;/strong&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;As you can see the LongOperation in protoype section is using the base class(&lt;font face="Courier New"&gt;Sys.Net.WebServiceProxy&lt;/font&gt;) &lt;font face="Courier New"&gt;invoke&lt;/font&gt; method to call the Web method which in turn returns &lt;font face="Courier New"&gt;WebRequest&lt;/font&gt;. The Proxy also has a self instance as a &lt;font face="Courier New"&gt;_staticInstance&lt;/font&gt;. But in later it overrides the method and uses the &lt;font face="Courier New"&gt;_staticInstance&lt;/font&gt; to call the WebMethod but it does not return the &lt;font face="Courier New"&gt;WebRequest(This is the bug) in this case&lt;/font&gt;. So if I write the code as we always did for calling a web method it does not return the &lt;font face="Courier New"&gt;WebReqest&lt;/font&gt; object.&lt;br /&gt;&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;var&lt;/span&gt; _request = TestService.LongOperation    (       10000, &lt;span style="color: rgb(0,128,0)"&gt;//10 seconds
&lt;/span&gt;                                                    &lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;(result)
                                                    {
                                                        &lt;span style="color: rgb(0,128,0)"&gt;//
&lt;/span&gt;                                                    },
                                                    &lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;(exception)
                                                    {
                                                        &lt;span style="color: rgb(0,128,0)"&gt;//
&lt;/span&gt;                                                    }
                                            );&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;&lt;br /&gt;But if I call like the following the &lt;font face="Courier New"&gt;WebRequest&lt;/font&gt; is returned:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;var&lt;/span&gt; _request = TestService._staticInstance.LongOperation  (     10000, &lt;span style="color: rgb(0,128,0)"&gt;//10 seconds
&lt;/span&gt;                                                            &lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;(result)
                                                            {
                                                                &lt;span style="color: rgb(0,128,0)"&gt;//
&lt;/span&gt;                                                            },
                                                            &lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;(exception)
                                                            {
                                                                &lt;span style="color: rgb(0,128,0)"&gt;//
&lt;/span&gt;                                                            }
                                                        );&lt;/pre&gt;
&lt;p&gt;Really interesting!!! I have already posted a bug in Asp.net Ajax Forum you can check the progress from this &lt;a href="http://forums.asp.net/t/1133015.aspx" target="_blank"&gt;link&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Now lets check how to cancel the call as we have already got the reference of the &lt;font face="Courier New"&gt;WebRequest&lt;/font&gt; object. To Cancel we can use the following code:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (_request != &lt;span style="color: rgb(0,0,255)"&gt;null&lt;/span&gt;)
{
    &lt;span style="color: rgb(0,0,255)"&gt;var&lt;/span&gt; executor = _request.get_executor();

    &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (executor.get_started())
    {
        executor.abort();
    }
}&lt;/pre&gt;
&lt;p&gt;Explanation: Every WebRequest in Ajax Framework has an associated Executor which actually uses the browser &lt;font face="Courier New"&gt;XMLHttpRequest&lt;/font&gt; to call the server side method (An URL).  In the above, first we are getting a reference of that executor then checking if the call is in progress (To be in the safe side), if so then we are invoking &lt;font face="Courier New"&gt;abort&lt;/font&gt; method of that executor which in turns call the &lt;font face="Courier New"&gt;abort&lt;/font&gt; method of the &lt;font face="Courier New"&gt;XMLHttpRequest&lt;/font&gt;.&lt;/p&gt;
&lt;p&gt;Another annoying problem I found after doing the abort the Ajax Framework throws an exception and for this reason the &lt;font face="Courier New"&gt;OnFailure&lt;/font&gt; Callback of the Web method call is executed. So we also need to differentiate between a real exception and an User Defined Abort (May be a button click of the user). For this we have to put some extra check in the failure callback like the following:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;var&lt;/span&gt; _request = TestService._staticInstance.LongOperation  (     10000, &lt;span style="color: rgb(0,128,0)"&gt;//10 seconds
&lt;/span&gt;                                                                &lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;(result)
                                                                {
                                                                    alert(result);
                                                                    $get(&lt;span style="color: rgb(163,21,21)"&gt;'btnInvoke'&lt;/span&gt;).disabled = &lt;span style="color: rgb(0,0,255)"&gt;false&lt;/span&gt;;
                                                                    $get(&lt;span style="color: rgb(163,21,21)"&gt;'btnAbort'&lt;/span&gt;).disabled = &lt;span style="color: rgb(0,0,255)"&gt;true&lt;/span&gt;;
                                                                },
                                                                &lt;span style="color: rgb(0,0,255)"&gt;function&lt;/span&gt;(exception)
                                                                {
                                                                    &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (!_request.get_executor().get_aborted())
                                                                    {
                                                                        alert(exception.get_message());
                                                                    }
                                                                    $get(&lt;span style="color: rgb(163,21,21)"&gt;'btnInvoke'&lt;/span&gt;).disabled = &lt;span style="color: rgb(0,0,255)"&gt;false&lt;/span&gt;;
                                                                    $get(&lt;span style="color: rgb(163,21,21)"&gt;'btnAbort'&lt;/span&gt;).disabled = &lt;span style="color: rgb(0,0,255)"&gt;true&lt;/span&gt;;
                                                                }
                                                            );&lt;/pre&gt;
&lt;p&gt;In the Failure Callback we are again checking if the &lt;font face="Courier New"&gt;WebRequest&lt;/font&gt; Executor has been aborted, if so then it is not an exception rather the user choose to cancel the call.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.box.net/shared/y1fypc3yht" target="_blank"&gt;Download: Complete working sample.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://www.dotnetkicks.com/kick/?url=http://geekswithblogs.net/rashid/archive/2007/07/14/Cancel-a-Web-Service-Call-in-Asp.net-Ajax.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://geekswithblogs.net/rashid/archive/2007/07/14/Cancel-a-Web-Service-Call-in-Asp.net-Ajax.aspx" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113926"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113926" 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/rashid/aggbug/113926.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kazi Manzur Rashid</dc:creator>
            <guid>http://geekswithblogs.net/rashid/archive/2007/07/14/Cancel-a-Web-Service-Call-in-Asp.net-Ajax.aspx</guid>
            <pubDate>Sat, 14 Jul 2007 10:30:34 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rashid/comments/113926.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rashid/archive/2007/07/14/Cancel-a-Web-Service-Call-in-Asp.net-Ajax.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/rashid/comments/commentRss/113926.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rashid/services/trackbacks/113926.aspx</trackback:ping>
        </item>
        <item>
            <title>Another Article on Ajax Control Development</title>
            <link>http://geekswithblogs.net/rashid/archive/2007/07/09/Another-Article-on-Ajax-Control-Development.aspx</link>
            <description>&lt;p&gt; Another addition of my Ajax Control Development Article series. This time it is Asp.net Ajax Repeater. &lt;a href="http://dotnetslackers.com/articles/ajax/ASPNETRepeater.aspx" target="_blank"&gt;Check it out&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;a target="_blank" href="http://www.dotnetkicks.com/kick/?url=http://dotnetslackers.com/articles/ajax/ASPNETRepeater.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://dotnetslackers.com/articles/ajax/ASPNETRepeater.aspx" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113788"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113788" 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/rashid/aggbug/113788.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kazi Manzur Rashid</dc:creator>
            <guid>http://geekswithblogs.net/rashid/archive/2007/07/09/Another-Article-on-Ajax-Control-Development.aspx</guid>
            <pubDate>Mon, 09 Jul 2007 22:43:39 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rashid/comments/113788.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rashid/archive/2007/07/09/Another-Article-on-Ajax-Control-Development.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/rashid/comments/commentRss/113788.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rashid/services/trackbacks/113788.aspx</trackback:ping>
        </item>
        <item>
            <title>My New Article - ASP.NET AJAX Control Development</title>
            <link>http://geekswithblogs.net/rashid/archive/2007/06/26/My-New-Article---ASP.NET-AJAX-Control-Development.aspx</link>
            <description>&lt;p&gt;A must read who wants to develop controls in Asp.net Ajax Framework. Covers in depth details of both client and server side programming. &lt;a href="http://dotnetslackers.com/articles/ajax/ASPNETAJAXControlDevelopment.aspx" target="_blank"&gt;Check it&lt;/a&gt; out.&lt;/p&gt; &lt;p&gt;&lt;a target="_blank" href="http://www.dotnetkicks.com/kick/?http://dotnetslackers.com/articles/ajax/ASPNETAJAXControlDevelopment.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://dotnetslackers.com/articles/ajax/ASPNETAJAXControlDevelopment.aspx" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113469"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113469" 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/rashid/aggbug/113469.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Kazi Manzur Rashid</dc:creator>
            <guid>http://geekswithblogs.net/rashid/archive/2007/06/26/My-New-Article---ASP.NET-AJAX-Control-Development.aspx</guid>
            <pubDate>Wed, 27 Jun 2007 01:20:29 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/rashid/comments/113469.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/rashid/archive/2007/06/26/My-New-Article---ASP.NET-AJAX-Control-Development.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/rashid/comments/commentRss/113469.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/rashid/services/trackbacks/113469.aspx</trackback:ping>
        </item>
    </channel>
</rss>