<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-3118855886814420426</atom:id><lastBuildDate>Wed, 06 Jan 2010 05:09:35 +0000</lastBuildDate><title>Pravin Godbole</title><description>i am very confident, smart, and caring too. i belives in Truth. Friendship is the Main element of my nature, i need a Very Good Friend as my Life Patner. i want to live every moment of my life, i want to keep my family members happy. i like to watch listen Musics (soft). my friends always use to ask every Decision about them, they think that i am brainy.</description><link>http://itspravingodbole.blogspot.com/</link><managingEditor>noreply@blogger.com (pravin)</managingEditor><generator>Blogger</generator><openSearch:totalResults>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3118855886814420426.post-1465596768575110543</guid><pubDate>Thu, 31 Jul 2008 06:25:00 +0000</pubDate><atom:updated>2008-07-30T23:50:07.552-07:00</atom:updated><title>Find Miss Call Mobile Number</title><description>&lt;p&gt;&lt;b&gt;Telecom Circles&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;AP - ANDHRA PRADESH&lt;/p&gt;&lt;br /&gt;&lt;p&gt;AS - ASSAM&lt;/p&gt;&lt;br /&gt;&lt;p&gt;BR - BIHAR &amp;amp; JHARKHAND&lt;/p&gt;&lt;br /&gt;&lt;p&gt;CH - CHENNAI&lt;/p&gt;&lt;br /&gt;&lt;p&gt;DL - DELHI&lt;/p&gt;&lt;br /&gt;&lt;p&gt;GJ - GUJRAT&lt;/p&gt;&lt;br /&gt;&lt;p&gt;HP - HIMACHAL PRADESH&lt;/p&gt;&lt;br /&gt;&lt;p&gt;HR - HARYANA&lt;/p&gt;&lt;br /&gt;&lt;p&gt;JK - JAMMU &amp;amp; KASHMIR&lt;/p&gt;&lt;br /&gt;&lt;p&gt;KL - KERALA&lt;/p&gt;&lt;br /&gt;&lt;p&gt;KN - KARNATAKA&lt;/p&gt;&lt;br /&gt;&lt;p&gt;KO - KOLKATA&lt;/p&gt;&lt;br /&gt;&lt;p&gt;MH - MAHARASHTRA&lt;/p&gt;&lt;br /&gt;&lt;p&gt;MP - MADHYA PRADESH &amp;amp; CHHATTISGARH&lt;/p&gt;&lt;br /&gt;&lt;p&gt;MU - MUMBAI&lt;/p&gt;&lt;br /&gt;&lt;p&gt;NE - NORTH EAST&lt;/p&gt;&lt;br /&gt;&lt;p&gt;OR - ORISSA&lt;/p&gt;&lt;br /&gt;&lt;p&gt;PB - PUNJAB&lt;/p&gt;&lt;br /&gt;&lt;p&gt;RJ - RAJASTHAN&lt;/p&gt;&lt;br /&gt;&lt;p&gt;TN - TAMILNADU&lt;/p&gt;&lt;br /&gt;&lt;p&gt;UE - UTTAR PRADESH(EAST)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;UW - UTTAR PRADESH(WEST) &amp;amp; UTTARANCHAL&lt;/p&gt;&lt;br /&gt;&lt;p&gt;WB - WEST BENGAL &amp;amp; ANDAMAN NIKOBAR&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Cellular Operator&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;A - AIRTEL&lt;/p&gt;&lt;br /&gt;&lt;p&gt;B - BPL MOBILE&lt;/p&gt;&lt;br /&gt;&lt;p&gt;C - AIRCEL LTD.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;H- HFCL CONNECT (CDMA)&lt;/p&lt;br /&gt;&gt;&lt;p&gt;I - IDEA&lt;/p&gt;&lt;br /&gt;&lt;p&gt;M - DOLPHIN (MTNL)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;R - RELIANCE TELECOM PVT. LTD./RELIANCE Communications (GSM)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;RIM - RELIANCE Communications (CDMA)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;S - SPICE COMMUNICATIONS&lt;/p&gt;&lt;br /&gt;&lt;p&gt;V - VODAFONE (HUTCH)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Y - RAINBOW (SHYAM) (CDMA)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;CELLONE- BHARAT SANCHAR NIGAM LIMITED&lt;/p&gt;&lt;br /&gt;&lt;p&gt;T-TATA INDICOM&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;1. This is a list of four digit mobile number prefixes(code) of all the the telecom operators across the country. By the first four digit of the mobile number you will know the telecom circle and telecom operator of the subscriber.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;2. I do not have any directory for the mobile numbers or any mobile tracking system, and hence I can't provide you the address for any mobile number. So please don't ask me for the same.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;3. This information will not be correct if the subscriber is in roaming circles.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;4. The '-' and '--' indicates that these codes have not been allotted to any cellular operators.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Mobile Telephone Number Codes for India&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table id="tblMain" border="2" cellspacing="10" cellpadding="10"&gt;&lt;br /&gt;  &lt;tbody&gt;&lt;br /&gt;  &lt;tr&gt;&lt;br /&gt;    &lt;td&gt;&lt;br /&gt;      &lt;table id="tblMain_0" cellspacing="5" cellpadding="5" border="0"&gt;&lt;br /&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td colspan="3" &gt;'90' Shared&lt;/td&gt; &lt;br /&gt;          &lt;td colspan="3" &gt;'91' Shared&lt;/td&gt; &lt;br /&gt;          &lt;td colspan="2" &gt;TATA INDICOM&lt;/td&gt;&lt;br /&gt;          &lt;td colspan="2" &gt;RIM&lt;/td&gt;&lt;br /&gt;          &lt;td colspan="2" &gt;CELLONE&lt;/td&gt;&lt;br /&gt;          &lt;td colspan="3" &gt;'96' Shared&lt;/td&gt; &lt;br /&gt;          &lt;td colspan="3" &gt;'97' Shared&lt;/td&gt; &lt;br /&gt;          &lt;td colspan="3" &gt;'98' Shared&lt;/td&gt; &lt;br /&gt;          &lt;td colspan="3" &gt;'99' Shared&lt;/td&gt;&lt;/tr&gt; &lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9000&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;AP&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9100&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9200&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9300&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9400&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9600&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9700&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9800&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;WB&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9900&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;KN&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9001&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9101&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9201&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9301&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9401&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;AS&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9601&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9701&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9801&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;BR&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9901&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;KN&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9002&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;WB&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9102&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9202&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9302&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9402&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;NE&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9602&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9702&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9802&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;HR&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9902&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;KN&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9003&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9103&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9203&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9303&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9403&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9603&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9703&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9803&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9903&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;KO&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9004&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9104&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9204&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;BR&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9304&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;BR&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9404&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9604&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9704&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9804&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;KO&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9904&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;GJ&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9005&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;UE&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9105&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9205&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;JK&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9305&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9405&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9605&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9705&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9805&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;HP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9905&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;R&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;BR&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9006&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;BR&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9106&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9206&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;NE&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9306&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;JK&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9406&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9606&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9706&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;AS&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9806&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9906&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;JK&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9007&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;KO&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9107&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9207&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;AS&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9307&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9407&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9607&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9707&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;R&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;AS&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9807&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9907&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;R&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;MP&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9008&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9108&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9208&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9308&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;BR&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9408&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9608&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9708&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;BR&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9808&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9908&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;AP&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9009&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9109&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9209&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9309&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9409&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9609&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9709&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;BR&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9809&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9909&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;GJ&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9010&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9110&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9210&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9310&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9410&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9610&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9710&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9810&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9910&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;DL&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9011&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9111&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9211&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9311&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9411&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9611&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9711&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9811&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9911&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;DL&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9012&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9112&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9212&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9312&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9412&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9612&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9712&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9812&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;HR&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9912&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;AP&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9013&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;M&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;DL&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9113&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9213&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9313&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9413&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9613&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9713&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9813&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;HR&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9913&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;GJ&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9014&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;R&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9114&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9214&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9314&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9414&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9614&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9714&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9814&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;S&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;9914&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;S&lt;/td&gt;&lt;br /&gt;          &lt;td  align="center"&gt;PB&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9015&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9115&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9215&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9315&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9415&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9615&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9715&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9815&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9915&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9016&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9116&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9216&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9316&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9416&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9616&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9716&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9816&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9916&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9017&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9117&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9217&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9317&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9417&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9617&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9717&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9817&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9917&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9018&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;JK&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9118&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9218&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9318&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9418&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9618&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9718&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9818&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9918&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9019&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9119&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9219&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9319&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9419&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;JK&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9619&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9719&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9819&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9919&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9020&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9120&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9220&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9320&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9420&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9620&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9720&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9820&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9920&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9021&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9121&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9221&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9321&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9421&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9621&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9721&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9821&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;B&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9921&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9022&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9122&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9222&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9322&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9422&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9622&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9722&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9822&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9922&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9023&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9123&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9223&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9323&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9423&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9623&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9723&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9823&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9923&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9024&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9124&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9224&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9324&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9424&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9624&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9724&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9824&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9924&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9025&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9125&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9225&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9325&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9425&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9625&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9725&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9825&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9925&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9026&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9126&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9226&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9326&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9426&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9626&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9726&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9826&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9926&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MP&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9027&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9127&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9227&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9327&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9427&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9627&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9727&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9827&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9927&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9028&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9128&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9228&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9328&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9428&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9628&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9728&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9828&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9928&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9029&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9129&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9229&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9329&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9429&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9629&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9729&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9829&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9929&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9030&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9130&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9230&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KO&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9330&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KO&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9430&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;BR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9630&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9730&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9830&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KO&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9930&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9031&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;BR&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9131&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9231&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KO&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9331&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KO&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9431&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;BR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9631&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9731&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9831&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KO&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9931&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A &lt;/td&gt;&lt;br /&gt;          &lt;td &gt;BR&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9032&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9132&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9232&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9332&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9432&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KO&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9632&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9732&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9832&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9932&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9033&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9133&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9233&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9333&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9433&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KO&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9633&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9733&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9833&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9933&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9034&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9134&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9234&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;BR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9334&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;BR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9434&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9634&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9734&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9834&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9934&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;BR&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9035&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HP&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9135&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9235&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9335&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9435&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AS&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9635&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9735&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9835&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;BR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9935&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9036&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9136&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9236&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9336&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9436&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;NE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9636&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9736&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9836&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KO&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9936&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9037&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9137&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9237&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;OR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9337&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;OR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9437&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;OR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9637&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9737&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9837&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9937&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;OR&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9038&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KO&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9138&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9238&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;OR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9338&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;OR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9438&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;OR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9638&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9738&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9838&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9938&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;OR&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9039&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MP&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9139&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9239&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KO&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9339&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KO&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9439&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9639&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9739&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9839&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9939&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;BR&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9040&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;OR&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9140&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9240&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9340&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9440&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9640&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9740&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9840&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9940&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9041&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9141&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9241&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9341&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9441&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9641&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9741&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9841&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9941&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9042&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9142&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9242&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9342&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9442&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9642&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9742&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9842&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9942&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9043&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9143&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9243&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9343&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9443&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9643&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9743&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;S&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9843&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9943&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9044&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9144&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9244&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9344&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9444&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9644&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9744&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9844&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;S&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9944&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9045&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9145&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9245&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9345&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9445&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9645&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9745&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9845&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9945&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9046&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;T&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9146&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9246&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9346&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9446&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9646&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9746&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9846&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9946&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9047&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9147&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9247&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9347&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9447&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9647&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9747&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9847&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9947&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9048&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9148&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9248&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9348&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9448&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9648&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9748&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KO&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9848&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9948&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9049&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9149&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9249&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9349&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9449&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9649&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9749&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9849&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9949&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9050&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9150&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9250&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9350&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9450&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9650&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9750&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9850&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9950&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9051&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KO&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9151&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9251&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9351&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9451&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9651&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9751&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9851&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9951&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9052&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9152&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9252&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9352&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9452&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9652&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9752&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9852&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;BR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9952&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9053&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9153&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9253&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9353&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9453&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9653&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9753&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9853&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;OR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9953&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9054&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9154&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9254&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9354&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9454&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9654&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9754&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9854&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AS&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9954&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AS&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9055&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9155&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9255&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9355&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9455&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9655&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9755&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9855&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;S&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9955&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;BR&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9056&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9156&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9256&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9356&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9456&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9656&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9756&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9856&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;NE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9956&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9057&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9157&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9257&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9357&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9457&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9657&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9757&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;M&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9857&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9957&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AS&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9058&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9158&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9258&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9358&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9458&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9658&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9758&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9858&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;JK&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9958&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9059&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9159&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9259&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9359&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9459&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9659&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9759&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9859&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AS&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9959&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9060&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9160&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9260&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9360&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9460&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9660&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9760&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9860&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9960&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9061&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9161&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9261&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9361&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9461&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9661&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9761&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9861&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;OR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9961&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9062&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9162&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9262&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9362&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9462&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9662&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9762&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9862&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;NE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9962&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9063&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9163&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9263&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9363&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9463&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9663&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9763&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9863&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;NE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9963&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9064&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9164&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9264&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9364&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9464&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9664&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9764&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9864&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AS&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9964&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;S&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9065&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9165&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9265&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9365&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9465&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9665&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9765&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9865&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9965&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9066&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9166&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9266&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9366&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9466&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9666&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9766&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9866&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9966&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9067&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9167&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9267&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9367&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9467&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9667&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9767&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9867&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9967&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9068&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9168&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9268&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9368&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9468&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9668&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9768&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9868&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;M&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9968&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;M&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9069&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9169&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9269&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9369&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9469&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;JK&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9669&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9769&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9869&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;M&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9969&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;M&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9070&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9170&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9270&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9370&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9470&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;BR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9670&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9770&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9870&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;B&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9970&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9071&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9171&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9271&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9371&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9471&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9671&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9771&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;BR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9871&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9971&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9072&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9172&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9272&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9372&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9472&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9672&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9772&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9872&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9972&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9073&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9173&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9273&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9373&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9473&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9673&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9773&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;B&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9873&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9973&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;BR&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9074&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9174&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9274&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9374&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9474&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9674&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9774&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;NE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9874&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KO&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9974&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9075&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9175&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9275&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9375&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9475&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9675&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9775&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9875&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;Y&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9975&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9076&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9176&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9276&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9376&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9476&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9676&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9776&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;OR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9876&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9976&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9077&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9177&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9277&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9377&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9477&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9677&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9777&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;OR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9877&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;H&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9977&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MP&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9078&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9178&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9278&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9378&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;WB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9478&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9678&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9778&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;OR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9878&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9978&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9079&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9179&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9279&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9379&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9479&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9679&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9779&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9879&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9979&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9080&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9180&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9280&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9380&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9480&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9680&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9780&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9880&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9980&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9081&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9181&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9281&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9381&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9481&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;br/&gt;&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9681&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9781&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;S&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9881&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9981&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MP&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9082&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9182&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9282&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9382&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9482&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9682&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9782&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9882&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9982&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9083&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9183&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9283&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9383&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9483&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9683&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9783&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9883&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KO&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9983&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9084&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9184&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9284&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9384&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9484&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9684&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9784&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9884&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9984&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9085&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9185&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9285&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9385&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;CH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9485&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9685&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9785&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9885&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9985&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9086&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9186&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9286&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9386&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9486&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9686&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9786&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9886&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9986&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KN&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9087&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9187&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9287&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9387&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9487&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9687&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9787&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9887&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9987&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9088&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9188&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9288&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9388&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9488&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9688&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9788&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;C&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9888&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9988&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;PB&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9089&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9189&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9289&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9389&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9489&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9689&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9789&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9889&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9989&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9090&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9190&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9290&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9390&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9490&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9690&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9790&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9890&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MH&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9990&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9091&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9191&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9291&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9391&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9491&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9691&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9791&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9891&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9991&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9092&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9192&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9292&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9392&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9492&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9692&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9792&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9892&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MU&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9992&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9093&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9193&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9293&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9393&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9493&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9693&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9793&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9893&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9993&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;MP&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9094&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9194&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9294&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9394&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9494&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9694&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9794&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9894&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9994&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;TN&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9095&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9195&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9295&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9395&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9495&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9695&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9795&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;I&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UE&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9895&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9995&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9096&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9196&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9296&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9396&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9496&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;KL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9696&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9796&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;JK&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9896&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9996&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;HR&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9097&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9197&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9297&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9397&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9497&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9697&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9797&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;JK&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9897&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9997&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;UW&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9098&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9198&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9298&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9398&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9498&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9698&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9798&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;R&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;BR&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9898&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9998&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;GJ&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;        &lt;tr&gt;&lt;br /&gt;          &lt;td &gt;9099&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9199&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9299&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9399&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;AP&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9499&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9699&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;-&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;--&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9799&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;A&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;RJ&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9899&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;9999&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;V&lt;/td&gt;&lt;br /&gt;          &lt;td &gt;DL&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;    &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;Please Add Comment About me.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3118855886814420426-1465596768575110543?l=itspravingodbole.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://itspravingodbole.blogspot.com/2008/07/find-miss-call-mobile-number.html</link><author>noreply@blogger.com (pravin)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>21</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3118855886814420426.post-4179040757950986526</guid><pubDate>Thu, 07 Jun 2007 08:07:00 +0000</pubDate><atom:updated>2007-06-07T01:11:30.717-07:00</atom:updated><title></title><description>&lt;a href="http://3.bp.blogspot.com/_MiQvZ3IYSKs/Rme9dYO03GI/AAAAAAAAABQ/78C0snfczkw/s1600-h/mylove.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_MiQvZ3IYSKs/Rme9dYO03GI/AAAAAAAAABQ/78C0snfczkw/s400/mylove.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5073231817674644578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Close your eyes and make a wish….&lt;br /&gt;Angels will b there to blow u a kiss…&lt;br /&gt;They’ll guide u and make all your dreams come true …&lt;br /&gt;Just like they did for me when I asked for a "SWEETHEART" like u...&lt;br /&gt;&lt;br /&gt;......{\\......._____.....,&lt;br /&gt;.....{*.\\.....(*~*~*).../}&lt;br /&gt;....{.~.*\\....////^^\\../~}&lt;br /&gt;....{*....\\..(((/.6.6./.*}&lt;br /&gt;....{..*.~.\\.)))c..=.)*..}&lt;br /&gt;.....{*...*.////“_/~`.~.}&lt;br /&gt;......{~.*.((((.`.`\\.*}“&lt;br /&gt;.......`{.~.)))`\\.\\))_.-:&lt;*&gt;&lt;br /&gt;..........`{.(()..`\\_.-“`.`:&lt;br /&gt;............`)/.`..|&lt;br /&gt;.............(....\\“ \\&lt;br /&gt;..............\\....\\ .\\&lt;br /&gt;........_ .__\\...| / ........|` `“...``Y;&lt;br /&gt;........|./``-../../&lt;br /&gt;........`“......|./&lt;br /&gt;................/.`-._&lt;br /&gt;................`-----&lt;div class="blogger-post-footer"&gt;Please Add Comment About me.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3118855886814420426-4179040757950986526?l=itspravingodbole.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://itspravingodbole.blogspot.com/2007/06/close-your-eyes-and-make-wish.html</link><author>noreply@blogger.com (pravin)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_MiQvZ3IYSKs/Rme9dYO03GI/AAAAAAAAABQ/78C0snfczkw/s72-c/mylove.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3118855886814420426.post-2788998161285674582</guid><pubDate>Fri, 25 May 2007 13:08:00 +0000</pubDate><atom:updated>2008-06-10T04:45:47.771-07:00</atom:updated><title>- My Angel !</title><description>You’re the air, babe, that I breathe &lt;br /&gt;You’re the strength that I always need &lt;br /&gt;You’re the light in my eyes &lt;br /&gt;My shining star, yeah, hea &lt;br /&gt;&lt;br /&gt;You guide my way &lt;br /&gt;You have to promise me that you will stay &lt;br /&gt;Always and forever &lt;br /&gt;Just you and I &lt;br /&gt;&lt;br /&gt;Angel &lt;br /&gt;You’re my angel &lt;br /&gt;Oh, whoa (Yeah, hea) &lt;br /&gt;You’re my angel (You’re my angel, baby) Alright &lt;br /&gt;&lt;br /&gt;Angel [My angel] &lt;br /&gt;You’re my angel &lt;br /&gt;Whoa, whoa &lt;br /&gt;You’re my angel (You’re my angel, baby) &lt;br /&gt;&lt;br /&gt;Girl, you know that, trust me &lt;br /&gt;I’ll be right here and you can count on me &lt;br /&gt;With a hand to hold &lt;br /&gt;And with open arms (Oh, whoa) &lt;br /&gt;&lt;br /&gt;Every day, every night &lt;br /&gt;I will always be your guidin’ light &lt;br /&gt;Always and forever &lt;br /&gt;Just you and me (My angel) &lt;br /&gt;&lt;br /&gt;Angel &lt;br /&gt;You’re my angel &lt;br /&gt;Oh, whoa (Oh, oh) &lt;br /&gt;You’re my angel (Yes, you are, yes, you are) &lt;br /&gt;&lt;br /&gt;Angel [My angel] &lt;br /&gt;You’re my angel &lt;br /&gt;Whoa, whoa &lt;br /&gt;You’re my angel (Yes, you are, yes, you are) &lt;br /&gt;&lt;br /&gt;You’ll be the one &lt;br /&gt;Ooh, the one that I need, oh &lt;br /&gt;And you are my angel, my guiding light &lt;br /&gt;&lt;br /&gt;Oh, whoa &lt;br /&gt;Oh, whoa &lt;br /&gt;Oh, whoa &lt;br /&gt;&lt;br /&gt;Angel [My angel] &lt;br /&gt;You’re my angel &lt;br /&gt;Oh, whoa (Oh, whoa) &lt;br /&gt;You’re my angel (Yes, you are, yes, you are) &lt;br /&gt;&lt;br /&gt;Angel [My angel] &lt;br /&gt;You’re my angel &lt;br /&gt;Whoa, whoa (Oh) &lt;br /&gt;You’re my angel (My angel) &lt;br /&gt;&lt;br /&gt;Angel My angel &lt;br /&gt;You’re my angel My shining star &lt;br /&gt;Oh, whoa I promise you &lt;br /&gt;You’re my angel Forever and ever &lt;br /&gt;&lt;br /&gt;Angel My angel &lt;br /&gt;You’re my angel The air that I breathe &lt;br /&gt;Oh, whoa My only love &lt;br /&gt;You’re my angel You’re my angel forever.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;YOU CAME INTO MY LIFE&lt;br /&gt;LIKE AN ANGEL - LOOKING FOR SOMETHING NEW&lt;br /&gt;YOU SAID HELLO AND THEN&lt;br /&gt;SOMETHING HAPPENED - A WHOLE DIFFERENT AVENUE&lt;br /&gt;I TOOK YOU IN MY ARMS&lt;br /&gt;AND IT FELT GOOD&lt;br /&gt;JUST SUPERNATURAL&lt;br /&gt;&lt;br /&gt;LETS GUESS WHAT LOVE IS ALL ABOUT&lt;br /&gt;OH BABE JUST COME DOWN OFF YOUR CLOUD&lt;br /&gt;AND MAYBE I WILL REALIZE&lt;br /&gt;THAT YOURE A DEVIL IN DISGUISE&lt;br /&gt;&lt;br /&gt;SO LET ME FEEL&lt;br /&gt;THAT HEAVENS ALL THAT REAL&lt;br /&gt;AND MAKE ME BREAK THE SEAL&lt;br /&gt;JUST BE THAT ANGEL IN MY BED BABY&lt;br /&gt;SPREAD YOUR WINGS&lt;br /&gt;LETS DO SOME SPECIAL THINGS&lt;br /&gt;YOURE ALL IVE NEVER HAD&lt;br /&gt;YOURE THAT ANGEL IN MY BED BABY&lt;br /&gt;&lt;br /&gt;THE WAY YOURE KISSING ME&lt;br /&gt;MAKES ME WONDER IF ITS REALITY&lt;br /&gt;THE WAY YOU CHANGE MY DREAMS&lt;br /&gt;MAKES ME HOPE THAT YOULL STAY FOREVER&lt;br /&gt;&lt;br /&gt;LETS GUESS WHAT LOVE IS ALL ABOUT&lt;br /&gt;OH BABE JUST COME DOWN OFF YOUR CLOUD&lt;br /&gt;AND MAYBE I WILL REALIZE&lt;br /&gt;THAT YOURE A DEVIL IN DISGUISE&lt;br /&gt;&lt;br /&gt;SO LET ME FEEL&lt;br /&gt;THAT HEAVENS ALL THAT REAL&lt;br /&gt;AND MAKE ME BREAK THE SEAL&lt;br /&gt;JUST BE THAT ANGEL IN MY BED BABY&lt;br /&gt;SPREAD YOUR WINGS&lt;br /&gt;LETS DO SOME SPECIAL THINGS&lt;br /&gt;YOURE ALL IVE NEVER HAD&lt;br /&gt;YOURE THAT ANGEL IN MY BED BABY&lt;br /&gt;&lt;br /&gt;I KNOW YOULL FLY AWAY&lt;br /&gt;NO CHANCE TO STOP YOU&lt;br /&gt;COS ANGELS NEVER STAY&lt;br /&gt;THEY LEAVE YOU&lt;br /&gt;WHEN YOU FALL IN LOVE&lt;br /&gt;&lt;br /&gt;OH LET ME FEEL&lt;br /&gt;THAT HEAVENS ALL THAT REAL&lt;br /&gt;AND MAKE ME BREAK THE SEAL&lt;br /&gt;JUST BE THAT ANGEL IN MY BED BABY&lt;br /&gt;SPREAD YOUR WINGS&lt;br /&gt;LETS DO SOME SPECIAL THINGS&lt;br /&gt;YOURE ALL IVE NEVER HAD&lt;br /&gt;YOURE THAT ANGEL IN MY BED BABY&lt;div class="blogger-post-footer"&gt;Please Add Comment About me.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3118855886814420426-2788998161285674582?l=itspravingodbole.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://itspravingodbole.blogspot.com/2007/05/youre-air-babe-that-i-breathe-youre.html</link><author>noreply@blogger.com (pravin)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3118855886814420426.post-6517292977094327733</guid><pubDate>Tue, 22 May 2007 11:03:00 +0000</pubDate><atom:updated>2008-06-10T04:49:43.938-07:00</atom:updated><title>MY  ANGEL</title><description>&lt;p&gt;&lt;br /&gt;===================================&lt;br /&gt;&lt;em&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;You're my angel in the night &lt;br /&gt;you're everything i think of&lt;br /&gt;everything i dream of.&lt;br /&gt;Yours is the voice i hear when&lt;br /&gt;The moon steals the day.  &lt;br /&gt;&lt;br /&gt;Yours is the voice&lt;br /&gt;i hear when the sun sneaks&lt;br /&gt;in to warm me.&lt;br /&gt;When my heart aches with lifes pains,&lt;br /&gt;you are my angel.&lt;br /&gt;&lt;br /&gt;I never expected someone like you.&lt;br /&gt;Someone kind and loving as you.&lt;br /&gt;You snuck into my life like a true&lt;br /&gt;angel in the night.&lt;br /&gt;Loving you is the only thing that&lt;br /&gt;brought me this far.&lt;br /&gt;&lt;br /&gt;Cuz' your my angel in the night.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;===========================================&lt;br /&gt;If I should stay..&lt;br /&gt;Well I would only be in your way...&lt;br /&gt;And so I'll go and yet I know..&lt;br /&gt;That I'll think of you&lt;br /&gt;Each step of my way...&lt;br /&gt;&lt;br /&gt;And I will always love you..&lt;br /&gt;I will always love you..&lt;br /&gt;&lt;br /&gt;Bittersweet memories..&lt;br /&gt;That's all I have and&lt;br /&gt;All I'm taking with me..&lt;br /&gt;So goodbye, please don't cry..&lt;br /&gt;Cause we both know that&lt;br /&gt;I'm not what you need...&lt;br /&gt;&lt;br /&gt;But I will always love you..&lt;br /&gt;I will always love you..&lt;br /&gt;&lt;br /&gt;And I hope life will treat you kind..&lt;br /&gt;And I hope that you have&lt;br /&gt;All you ever dreamed of..&lt;br /&gt;Oh, I do wish you joy..&lt;br /&gt;And I wish you happiness..&lt;br /&gt;But above all this, I wish you love..&lt;br /&gt;I love you..&lt;br /&gt;I will always love you...&lt;br /&gt;&lt;br /&gt;I, I will always, always love you..&lt;br /&gt;I will always love you..&lt;br /&gt;I will always love you...&lt;br /&gt;I will always....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This happens to be my all time favorite song and it is dedicated&lt;br /&gt;to everyone I have loved as well as to everyone I will love&lt;br /&gt;in the future.&lt;br /&gt;&lt;br /&gt;But most of all, it is dedicated to my “ANGEL”.&lt;br /&gt;I like her because she LOVES me A LOT.&lt;br /&gt;&lt;br /&gt;I love you with all of my being, my “ANGEL”!&lt;br /&gt;===========================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;==================================&lt;br /&gt;My sweet beautiful angel.&lt;br /&gt;Sent to me from above.&lt;br /&gt;I am so grateful to have found you,&lt;br /&gt;and I give you all my love.&lt;br /&gt;&lt;br /&gt;You must have come from heaven,&lt;br /&gt;because you have pretty little angel eyes.&lt;br /&gt;When you gaze at me with them,&lt;br /&gt;my heart begins to fly.&lt;br /&gt;&lt;br /&gt;Your sweet angelic voice,&lt;br /&gt;continuously rings in my ears.&lt;br /&gt;With you by my side,&lt;br /&gt;there is nothing I fear.&lt;br /&gt;&lt;br /&gt;Whenever we are together,&lt;br /&gt;You shine with a heavenly glow.&lt;br /&gt;Your beautiful angel face,&lt;br /&gt;raises me up from feeling low.&lt;br /&gt;&lt;br /&gt;Yes, heaven is missing an angel,&lt;br /&gt;because you are here with me.&lt;br /&gt;You're my sweet, beautiful angel,&lt;br /&gt;and I'll love you for eternity!&lt;br /&gt;====================================&lt;br /&gt;As I slowly drift off, deep into my dreams.&lt;br /&gt;I sleep with a smile, surely must do it seems,&lt;br /&gt;For I meet an angel one as white as snow,&lt;br /&gt;My one true love, that I adore worship so.&lt;br /&gt;In sleep we both let ourselves ever be taken,&lt;br /&gt;Away from the morning before we &amp; primal awaken.&lt;br /&gt;We cherish these endless times that we share,&lt;br /&gt;In dreams we can travel to almost anywhere.&lt;br /&gt;A romantic beach or maybe a beautiful shore,&lt;br /&gt;We travel eternity it seems and much more.&lt;br /&gt;We even take flight on Angel &amp; prime’s very wings,&lt;br /&gt;Cherishing and nurturing joys that we bring.&lt;br /&gt;We can go anywhere, to all places unknown,&lt;br /&gt;Taking pleasure, time, as loves seeds are sown.&lt;br /&gt;But gradually slipping from each others sight,&lt;br /&gt;Our eyes slowly open, to the dawn of daylight.&lt;br /&gt;Kisses cuddles not wishing to let one another go&lt;br /&gt;The sweetest feeling only true loved one ’s &lt;br /&gt;know The awakening brings us back down, to reality,&lt;br /&gt;But our hearts know that later, together we’ll be.&lt;div class="blogger-post-footer"&gt;Please Add Comment About me.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3118855886814420426-6517292977094327733?l=itspravingodbole.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://itspravingodbole.blogspot.com/2007/05/my-dream-girl-my-angel.html</link><author>noreply@blogger.com (pravin)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3118855886814420426.post-654236149670761933</guid><pubDate>Tue, 15 May 2007 12:52:00 +0000</pubDate><atom:updated>2007-05-15T05:53:31.014-07:00</atom:updated><title>Faasale ayse bhi honge .......</title><description>Faasale ayse bhi honge ye kabhi socha na tha &lt;br /&gt;samane baitha tha mere aur vo mera na tha &lt;br /&gt;&lt;br /&gt;wo ki Khushbu kii tarah phailaa thaa mere chaar su&lt;br /&gt;main use mahasuus kar sakataa thaa chhu sakataa na tha &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;raat bhar us kii hii aahat kaan main aatii rahii&lt;br /&gt;jhaaNk kar dekhaa galii main koii bhii aayaa na tha &lt;br /&gt;&lt;br /&gt;aks to maujood the par aks tanhaaii ke the&lt;br /&gt;aainaa to thaa magar us main teraa cheharaa na tha &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;aaj us ne dard bhii apane alahadaa kar diye&lt;br /&gt;aaj main royaa to mere saath wo royaa na tha &lt;br /&gt;&lt;br /&gt;ye sabhii viiraaniyaa us ke judaa hone se thii&lt;br /&gt;aaNkh dhuNdhalaai huwii thii shahar dhuNdhalaya na tha &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;yaad karake aur bhii takleef hotii thii "Emran"&lt;br /&gt;bhool jaane ke siwaa ab koii bhii chaaraa na thaa &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;meri sulagti tanhai ko wo zalim kya samjhe ga&lt;br /&gt;mai har rooz jalta hon ek parwanay ki tarha&lt;div class="blogger-post-footer"&gt;Please Add Comment About me.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3118855886814420426-654236149670761933?l=itspravingodbole.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://itspravingodbole.blogspot.com/2007/05/faasale-ayse-bhi-honge.html</link><author>noreply@blogger.com (pravin)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3118855886814420426.post-983611648061890296</guid><pubDate>Tue, 15 May 2007 12:51:00 +0000</pubDate><atom:updated>2007-05-15T05:52:11.139-07:00</atom:updated><title>I will be right there for you</title><description>It's so hard to say &lt;br /&gt;How a love could end this way &lt;br /&gt;The one that used to care for you &lt;br /&gt;Just turns and walks away &lt;br /&gt;And it's so hard to find &lt;br /&gt;To leave the pain behind &lt;br /&gt;When all the things you're looking for &lt;br /&gt;Your heart can't seem to find &lt;br /&gt;&lt;br /&gt;-chorus- &lt;br /&gt;I'll be the air that you breathe &lt;br /&gt;I'll give the strength that you need &lt;br /&gt;I'll be the light in your eyes &lt;br /&gt;When hope becomes hard to see &lt;br /&gt;I'll be your shining star &lt;br /&gt;To guide you wherever you are &lt;br /&gt;And I promise that I'll be by your side &lt;br /&gt;Always you and I &lt;br /&gt;&lt;br /&gt;No, you're not alone &lt;br /&gt;Without a love to call your own &lt;br /&gt;'Cause I'll always be right there for you &lt;br /&gt;To help you carry on &lt;br /&gt;A heart that's always true &lt;br /&gt;Girl, I'm giving mine to you &lt;br /&gt;And everything you'll ever need &lt;br /&gt;I promise I will do &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Girl, you know I'll stay beside?- &lt;br /&gt;I will be right there for you &lt;br /&gt;With a hand to hold &lt;br /&gt;A heart to see you through &lt;br /&gt;'Cause each and every night &lt;br /&gt;I will make you right &lt;br /&gt;When life feels so wrong &lt;br /&gt;'Cause in my arms is where you belong&lt;div class="blogger-post-footer"&gt;Please Add Comment About me.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3118855886814420426-983611648061890296?l=itspravingodbole.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://itspravingodbole.blogspot.com/2007/05/i-will-be-right-there-for-you.html</link><author>noreply@blogger.com (pravin)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3118855886814420426.post-8850545269863092612</guid><pubDate>Tue, 15 May 2007 12:51:00 +0000</pubDate><atom:updated>2007-05-15T05:51:31.875-07:00</atom:updated><title>Do U Know How Much.....</title><description>Do U Know How Much.....   &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;Thoughts of you run through my head&lt;br /&gt;Every minute, every hour, of everyday&lt;br /&gt;At night I wake with such a fright&lt;br /&gt;Dreaming of you not being there&lt;br /&gt;What would I do if you were gone &lt;br /&gt;&lt;br /&gt;You are thought of in every emotion&lt;br /&gt;&lt;br /&gt;When I smile it is because you have brightened my day&lt;br /&gt;When I cry it is because you are not there &lt;br /&gt;When I frown it is because you are sad &lt;br /&gt;When I laugh I am laughing with you&lt;br /&gt;When I am happy it is because I know you are there&lt;br /&gt;&lt;br /&gt;Please know you are my reason for living &lt;br /&gt;&lt;br /&gt;You are in the deepest part of my heart&lt;br /&gt;Just remember and always know,&lt;br /&gt;You are the love of my life&lt;br /&gt;No one else means more to me than you!&lt;div class="blogger-post-footer"&gt;Please Add Comment About me.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3118855886814420426-8850545269863092612?l=itspravingodbole.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://itspravingodbole.blogspot.com/2007/05/do-u-know-how-much.html</link><author>noreply@blogger.com (pravin)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3118855886814420426.post-8768993438224932352</guid><pubDate>Tue, 15 May 2007 12:50:00 +0000</pubDate><atom:updated>2007-05-15T05:50:42.666-07:00</atom:updated><title>TO THE ONE "I LOVE"!</title><description>TO THE ONE "I LOVE"! &lt;br /&gt;  &lt;br /&gt;    &lt;br /&gt;  &lt;br /&gt; &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt; Love is the tenderness in your loving touch.  &lt;br /&gt; Love is not needing the last word in an argument. &lt;br /&gt; Love is looking at your own faults instead of mine.  &lt;br /&gt;Love is sacrificing instead of demanding.  &lt;br /&gt; &lt;br /&gt; Love is being there during the bad times too.  &lt;br /&gt; Love is caring when I'm sick. &lt;br /&gt; Love is being faithful to our union.  &lt;br /&gt;Love is the honesty and respect you show me.  &lt;br /&gt;&lt;br /&gt; Love is giving instead of taking. &lt;br /&gt; Love is making me laugh when I'm depressed. &lt;br /&gt;Love is giving me comfort when I'm sad.  &lt;br /&gt;Love is sharing important decisions. &lt;br /&gt;&lt;br /&gt;Love is forgiveness when I need it. &lt;br /&gt;Love is being committed to our relationship.  &lt;br /&gt;Love is accepting me as is instead of trying to change me. &lt;br /&gt; Love is holding me and crying with me.  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;  &lt;br /&gt;           You have blessed my heart and &lt;br /&gt;            our love with all of these. &lt;br /&gt;            My  prayer is to return the same &lt;br /&gt;            precious love to thee.&lt;br /&gt;  &lt;br /&gt; &lt;br /&gt; itspravingodbole&lt;div class="blogger-post-footer"&gt;Please Add Comment About me.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3118855886814420426-8768993438224932352?l=itspravingodbole.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://itspravingodbole.blogspot.com/2007/05/to-one-i-love.html</link><author>noreply@blogger.com (pravin)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3118855886814420426.post-8605167317727408234</guid><pubDate>Tue, 15 May 2007 12:48:00 +0000</pubDate><atom:updated>2007-05-15T05:48:23.014-07:00</atom:updated><title>MY GREATEST THANKS</title><description>Every time when a message comes&lt;br /&gt;&lt;br /&gt;I open just thinking of you;&lt;br /&gt;&lt;br /&gt;when its not you&lt;br /&gt;&lt;br /&gt;I wont get disappointed&lt;br /&gt;&lt;br /&gt;still I enjoy that moment&lt;br /&gt;&lt;br /&gt;which made me&lt;br /&gt;&lt;br /&gt;think of you&lt;div class="blogger-post-footer"&gt;Please Add Comment About me.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3118855886814420426-8605167317727408234?l=itspravingodbole.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://itspravingodbole.blogspot.com/2007/05/my-greatest-thanks.html</link><author>noreply@blogger.com (pravin)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3118855886814420426.post-113694347728531200</guid><pubDate>Tue, 15 May 2007 12:40:00 +0000</pubDate><atom:updated>2007-05-15T05:41:39.654-07:00</atom:updated><title>What Is Stress?</title><description>What Is Stress?&lt;br /&gt;Stress is the emotional and physical strain caused by our response to pressure from the outside world. Common stress reactions include tension, irritability, inability to concentrate, and a variety of physical symptoms that include headache and a fast heartbeat. &lt;br /&gt;It's almost impossible to live without some stress. And most of us wouldn't want to, because it gives life some spice and excitement. But if stress gets out of control, it may harm your health, your relationships, and your enjoyment of life. &lt;br /&gt;Examples of "overload" situations are common in today's world:&lt;br /&gt;You and your spouse both work full time while you are raising your family. At the same time, your parents are retired, in ill health, and are dependent on your help with shopping and running errands. &lt;br /&gt;You are a single person living alone, and your salary isn't rising as fast as the rate of inflation. It's getting harder each month to pay the bills. &lt;br /&gt;You are a divorced parent and share the custody of your children with your former spouse. But the friction between the two of you on matters concerning the children is becoming more bitter and more frequent. &lt;br /&gt;The expectations and competition at your workplace is becoming fierce. You find yourself coming in early, staying late, and taking on more work than you can handle. &lt;br /&gt;Managing stress involves learning about:&lt;br /&gt;How stress affects the mind and body &lt;br /&gt;How to identify the warning signs of stress &lt;br /&gt;How to develop good stress-management techniques &lt;br /&gt;When to seek professional help &lt;br /&gt;What Are The Signs Of Stress?&lt;br /&gt;Stress can cause both mental and physical symptoms. The effects of stress are different for different people.&lt;br /&gt;The mental symptoms of stress include:&lt;br /&gt;Tension &lt;br /&gt;Irritability &lt;br /&gt;Inability to concentrate &lt;br /&gt;Feeling excessively tired &lt;br /&gt;Trouble sleeping &lt;br /&gt;The physical symptoms of stress include:&lt;br /&gt;Dry mouth &lt;br /&gt;A pounding heart &lt;br /&gt;Difficulty breathing &lt;br /&gt;Stomach upset &lt;br /&gt;Frequent urination &lt;br /&gt;Sweating palms &lt;br /&gt;Tight muscles that may cause pain and trembling &lt;br /&gt;Nice To Know: &lt;br /&gt;Many addictions are linked to a stressful lifestyle, such as overeating, smoking, drinking, and drug abuse. These are used as an escape or a temporary way of "switching off" - but they do not address the underlying problem.  &lt;br /&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;What Causes Stress?&lt;br /&gt;We may think of stressful events as unpleasant ones, such as losing a job or having difficulties at home or at school. But changes for the better can also cause stress, like a new baby, a wedding, and a new house.&lt;br /&gt;In an ideal world, maybe we could get away from stressful situations, or change them. Too often we can't do that - but we can learn to control our response to those situations. And we can develop techniques that will reduce the effects of stress on our mental and physical health. &lt;br /&gt;What's Stressful For You?&lt;br /&gt;What's stressful for you may be quite different from what's stressful to your best friend, your spouse, or the person next door. For example:&lt;br /&gt;Some people enjoy speaking in public; others are terrified. &lt;br /&gt;Some people are more productive under deadline pressure; others are miserably tense. &lt;br /&gt;Some people are eager to help family and friends through difficult times; others find it very stressful. &lt;br /&gt;Some people feel comfortable complaining about bad service in a restaurant; others find it so difficult to complain that they prefer to suffer in silence. &lt;br /&gt;Some people may feel that changes at work represent a welcome opportunity; others worry about whether they'll be able to cope. &lt;br /&gt;Nice To Know: &lt;br /&gt;Q: Are some people more vulnerable to stress than others? &lt;br /&gt;A: Yes. Personality type plays a role in reaction to stress. For example, people who drive themselves hard and are impatient (sometimes called Type A personalities) may be more at risk for stress-related physical problems. Certain occupations, such as law enforcement or air traffic control, are clearly more stressful than others. In addition, people with a personal or family history of mental illness may be affected more by stress.  &lt;br /&gt;&lt;br /&gt;What Are Your Personal Signs Of Stress?&lt;br /&gt;People react to stress in different ways. Once you identify your own signs of stress, they can serve as your personal early warning system.&lt;br /&gt;Think of yourself as a car that's equipped with lights and gauges to warn you if any problems are developing. If you keep an eye on the gauges and catch the trouble early, the problem may be easy to fix. If you ignore the warning signs, you may be in for a major repair job. &lt;br /&gt;You should assess yourself for four types of stress signs:&lt;br /&gt;Changes in body functions and physical health &lt;br /&gt;Changes in emotions and feelings &lt;br /&gt;Changes in behavior &lt;br /&gt;Changes in thoughts &lt;br /&gt;Use these checklists to identify your own signs of stress. There is space on the checklists for a second opinion, because people close to us may notice changes that we are not aware of. &lt;br /&gt;Changes in body functions and physical health &lt;br /&gt;Do you get more:  Are you having this sign of stress? Has some one else noticed you have this sign?  &lt;br /&gt;Backache   &lt;br /&gt;Muscle tension   &lt;br /&gt;Nervous stomach   &lt;br /&gt;Breathing problems   &lt;br /&gt;Frequent urination   &lt;br /&gt;Fatigue   &lt;br /&gt;Dizziness   &lt;br /&gt;&lt;br /&gt;Changes in emotions and feelings &lt;br /&gt;Do you feel more:  Are you having this sign of stress? Has some one else noticed you have this sign? &lt;br /&gt;Irritable   &lt;br /&gt;Sad   &lt;br /&gt;Worried   &lt;br /&gt;Tense   &lt;br /&gt;Angry   &lt;br /&gt;&lt;br /&gt;Changes in behavior &lt;br /&gt;Are there changes in how much you:  Are you having this sign of stress? Has some one else noticed you have this sign? &lt;br /&gt;Sleep    &lt;br /&gt;Eat (too much or too little)   &lt;br /&gt;Want sex (less or more than before)   &lt;br /&gt;Drink alcohol   &lt;br /&gt;Use drugs   &lt;br /&gt;&lt;br /&gt;Changes in how you think &lt;br /&gt;Are you finding it harder to:  Are you having this sign of stress? Has some one else noticed you have this sign? &lt;br /&gt;Remember things   &lt;br /&gt;Concentrate   &lt;br /&gt;Look on the bright side   &lt;br /&gt;Do you find yourself feeling:  &lt;br /&gt;Helpless   &lt;br /&gt;Hopeless   &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Now go over the lists, and pick out the signs of stress that you consider the most important - the ones that are really interfering with the way you function and enjoy life. Then mark on the next chart whether they are related to your body, your feelings, your behavior, or your thoughts. &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;How Does Stress Affect The Body?&lt;br /&gt;To understand what stress does to us, imagine you lived tens of thousands of years ago, at a time when humans were threatened by hungry animals such as saber-toothed tigers and wolves. Our caveman ancestors had to be able to react instantly, either by fighting the beasts or running away. &lt;br /&gt;So humans evolved the ability to respond to a stressful situation instantly, by preparing the body for "fight or flight." Under sudden stress, you will get a burst of exceptional strength and endurance, as your body pumps out stress hormones:&lt;br /&gt;Your heart speeds up &lt;br /&gt;Blood flow to your brain and muscles increases up to 400 percent &lt;br /&gt;Your digestion stops (so it doesn't use up energy that's needed elsewhere) &lt;br /&gt;Your muscle tension increases &lt;br /&gt;You breathe faster, to bring more oxygen to your muscles &lt;br /&gt;Sometimes we can still benefit from this "fight or flight" response - like the case of a mother whose child was pinned under a concrete slab during a tornado. Under stress, she found the strength to lift the huge slab with her bare hands, even though it later took three men to move it. &lt;br /&gt;But much of the time in modern life, the "fight or flight" response won't help. Yet those stress hormones still flood your system, preparing you for physical action. And if you are under stress frequently, it can harm your physical health. &lt;br /&gt; &lt;br /&gt;How Stress Can Hurt Us&lt;br /&gt;It has been estimated that two-thirds of all visits to physicians are for stress-related problems. Recent evidence indicates that the physical changes associated with stress may contribute to the leading causes of death - heart disease and cancer. &lt;br /&gt;The effects of stress include the following:&lt;br /&gt;Stress can cause chronic fatigue, digestive upsets, headaches, and back pain. &lt;br /&gt;Stress can affect the blood cells that help you fight off infection, so you are more likely to get colds and other diseases. &lt;br /&gt;Constant stress can increase blood pressure and can increase the risk for stroke. &lt;br /&gt;Stress can increase the danger of heart attacks, particularly if you are often angry and mistrustful. &lt;br /&gt;Stress can make an asthma attack worse. &lt;br /&gt;Stress triggers behaviors that contribute to death and disability, such as smoking, alcoholism, drug abuse, and overeating. &lt;br /&gt;Stress can lead to diminished sexual desire and an inability to achieve orgasm. &lt;br /&gt;Stress makes it harder to take other steps to improve health, such as giving up smoking or making changes in diet. &lt;br /&gt;Dealing With Stress&lt;br /&gt;One method of stress management is called the TARP method, and it has been proven effective for many. A tarp is a protective cover thrown over something - a car or boat, for example - to protect it from the elements. Likewise, the TARP method offers a form of protection, too - protection against the distressing and sometimes harmful effects of stress. &lt;br /&gt;The TARP method teaches simple techniques that can be used any time, anywhere, to control your response to stressful situations. It consists of four steps:&lt;br /&gt;T is for "Tune in" - Get into the habit of noticing early signs of stress. &lt;br /&gt;A is for "Analyze" - Think about the source or causes of your stress. &lt;br /&gt;R is for "Respond" - Deal with the cause of your stress, and its effects on you. &lt;br /&gt;P is for "Prevent" - Develop good stress-reduction habits for a healthier lifestyle. &lt;br /&gt;In addition to the TARP method, other activities and methods also can help manage stress.&lt;br /&gt;"Tune in"&lt;br /&gt;Tuning in is important, because if you don't tackle your stress early, it can interfere with your sense of well being and your health almost before you know it. And the effects of stress often get worse as time goes on. &lt;br /&gt;Whenever you notice yourself feeling the beginnings of stress - for example, when you feel irritable, tense, distracted, or fatigued - scan yourself for signs of stress.&lt;br /&gt;How-To Information: &lt;br /&gt;Follow these four steps to scan yourself for signs of stress: &lt;br /&gt;1. Scan yourself for physical signs of stress, starting with your head and working down. For example:&lt;br /&gt;Do you have muscle tension? &lt;br /&gt;Do you have sweaty palms? &lt;br /&gt;Do you have rapid breathing or rapid pulse? &lt;br /&gt;2. Scan your behavior for signs of stress. For example: &lt;br /&gt;Are you pacing or fidgeting? &lt;br /&gt;Is your voice too tense, too loud or too quiet? &lt;br /&gt;3. Scan your emotions, remembering some feelings that may be in the background. For example:&lt;br /&gt;Do you feel nervous, moody, depressed? &lt;br /&gt;Do you feel frustrated? &lt;br /&gt;Do you feel lonely? &lt;br /&gt;4. Scan your thoughts and thinking patterns. For example:&lt;br /&gt;Are your thoughts always turning to your worries? &lt;br /&gt;Are you having trouble with concentration or memory?  &lt;br /&gt;&lt;br /&gt;Learning to spot signs of stress instantly can take practice. But if you make a point of scanning your body, behavior, feelings, and thoughts regularly, it will get easier.&lt;br /&gt;Nice To Know: &lt;br /&gt;Some people may find that a single sign will always tip them off that they are under stress. For example, they may notice that they always start to sweat, or tap a foot, or talk fast. Other people may have a "menu" of warning signs, any one of which could alert them to the beginning of stress.  &lt;br /&gt;&lt;br /&gt;"Analyze"&lt;br /&gt;Once you know how to "tune in" to your signs of stress, you will be better able to analyze the situations that are stressful to you. These "stressors," as they are called, could be either external or internal. &lt;br /&gt;External stressors are things and events outside your body that can make you feel threatened or out of control. For example:&lt;br /&gt;Physical irritants like noise, pollution, heat, or humidity &lt;br /&gt;Work demands or conditions &lt;br /&gt;Frightening events, like narrowly escaping a traffic accident &lt;br /&gt;Social or family demands, changes, or problems &lt;br /&gt;Internal stressors result from one's own attitudes and thinking patterns. For example:&lt;br /&gt;Do you always talk to yourself with words like "should, must, and ought?" &lt;br /&gt;Do you feel like a failure if you are late, or if things don't go as planned? &lt;br /&gt;Do you have "me last" syndrome, feeling you have to look after everyone else's needs before you think of your own? &lt;br /&gt;Do you feel worthless unless everyone likes you all the time? &lt;br /&gt;Are you guilty of "awful-izing," which means always expecting the worst? For example, if family members are late, do you often imagine they are injured or dead? &lt;br /&gt;Need To Know: &lt;br /&gt;Sometimes, your body itself can cause stress. For example, it is stressful to have to live with constant backache or other nagging sources of pain. Or, if you are not sleeping well (perhaps because of stress), you may be more stressed than ever the next day because you are so tired.  &lt;br /&gt;&lt;br /&gt;How-To Information: &lt;br /&gt;A stress diary can be helpful in the analyzing stage. For one week, write down all the stressors you can identify. Don't leave anything out. Here's an example: &lt;br /&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;"Respond"&lt;br /&gt;"Responding" in the days of early man meant fighting the source of stress or running away from it. Your body will still produce a physical "alarm response" that pumps stress hormones through your body, tensing your muscles and speeding up your heart. This "alarm response" in most cases doesn't do us any good - and it can be harmful.&lt;br /&gt;You can learn to turn off the alarm response and regain control. You can learn to respond calmly, and deal actively and positively with your stress, whether it is caused by outside or internal factors.&lt;br /&gt;Four useful techniques for responding calmly are:&lt;br /&gt;1. Time out. A brief time out is the simplest possible approach to stress:&lt;br /&gt;Stop the activity (or the conversation) that was causing you stress. &lt;br /&gt;If you can move away, go to another room, or go for a short walk. &lt;br /&gt;If you can't move away, count to 10 silently before you speak again. &lt;br /&gt;2. Breathing. You can often tell if people are under stress because of the way they are breathing. For example, customs officers have noticed that smugglers are the people taking fast, shallow breaths. If you learn to control your breathing, it will help you regain control over the effects of stress. &lt;br /&gt;Watch babies breathing; their abdomens expand when they breathe in. &lt;br /&gt;Watch a tense adult breathing; there may be no movement of the abdomen. All the work is being done by the chest. &lt;br /&gt;Abdominal breathing can be very soothing, because it slows you down. It is also efficient, bringing a good supply of oxygen to your brain. Prepare for stressful times by practicing your breathing now:&lt;br /&gt;Check your breathing pattern by putting one hand on your chest and one hand on your stomach. If your lower hand moves and your top hand does not, you are doing abdominal breathing. But if your top hand moves and your bottom one does not, you are doing chest breathing. &lt;br /&gt;To do abdominal breathing, get your stomach relax. Breathe in deeply, then breathe all the air out. Let your lungs fill with air again naturally, while your stomach expands. &lt;br /&gt;Practice this "belly breathing" whenever you have spare time (for example, while you are driving). &lt;br /&gt;Whenever you are stressed, worried, or tense, use your breathing to help calm yourself down. Take a deep breath and quietly let it go out completely, then let your abdomen expand as the air comes back into your lungs. Keep noticing your abdominal breathing for another few breaths. &lt;br /&gt;For a variation on this breathing technique, try "10-to-one countdown" breathing:&lt;br /&gt;Start with abdominal breathing, letting all the breath out and then allowing your abdomen to expand as your lungs fill up again. &lt;br /&gt;When you breathe out again, say "10," letting go of tension as if it is being carried out of your body with the air. &lt;br /&gt;Next time you breathe out, say "nine," and so on, all the way down to "one." &lt;br /&gt;When you get to "one," start again. &lt;br /&gt;Each time you breathe out, tell yourself you are letting go of tension. &lt;br /&gt;Many people repeat this sequence slowly for a period of 15 to 20 minutes. They find that with each new countdown, they reach a deeper level of relaxation. &lt;br /&gt;When we are under stress, we often feel things are happening too fast. Another technique, called slow-down breathing, can help you get settled down and in control. It starts with abdominal breathing, and uses cue words to help you focus and clear your mind. Examples of cue words are: &lt;br /&gt;As you breathe in, silently say "calm" &lt;br /&gt;As you breathe out, silently say "smiling" &lt;br /&gt;As you breathe in, say "present" &lt;br /&gt;As you breathe out, say "now" &lt;br /&gt;Practice breathing techniques for five or 10 minutes until you get the feel of it, then again several times a day for a few moments. Then it will be instantly ready to use as a "mini-tranquilizer" whenever you notice yourself starting to feel tense or out of control. &lt;br /&gt;3. Progressive muscle relaxation. This technique will help you get rid of the muscle tension that is a major sign of uncontrolled stress, and which can lead to headaches, back pain, and muscle pulls. It is based on the principle that muscles go to a deeper level of relaxation after they have been tensed. &lt;br /&gt;Lie on the floor or on a firm bed, or sit in a chair that has good head support. &lt;br /&gt;Close your eyes and breathe deeply two or three times. &lt;br /&gt;Next, tighten up the muscles of different parts of your body in turn; keep them tight while you count silently to five; then let go and imagine the tension going out as you relax and smooth the muscles. &lt;br /&gt;Start with your face. Squint your eyes, tighten your teeth and jaw, and wrinkle your forehead. Feel the tension while you count silently to five, and then let go of it. Feel the warmth of relaxation coming to your face. &lt;br /&gt;Next, pull your shoulders up until they nearly touch your ears. Feel the tension while you count silently to five. Then let go. &lt;br /&gt;Now progress through the rest of your body, tightening muscles while you count slowly to five, then letting the tension go. Start with your stomach and chest muscles, then your lower abdomen, buttocks, and thighs. Finish with your lower legs, curling up your toes and tightening calf muscles to feel the tension in your foot, ankle, calves, and knee. &lt;br /&gt;When you have finished, notice the tension and release in all your muscles. Breathe deeply a few times, and feel relaxed, refreshed, and comfortable. &lt;br /&gt;4. Thought-stopping. This is a good technique for dealing with stress that comes from your own negative feelings. When you notice negative thoughts, just say "stop!" to yourself. It may sound too simple to be effective - but it works, even though you may have to repeat the word several times until the negative thoughts are interrupted. &lt;br /&gt;Sometimes, using mental images can help you stop the negative thoughts:&lt;br /&gt;Imagine that the negative thoughts are coming from a tape recorder, and that you can push the "stop" button or turn down the volume to zero. &lt;br /&gt;Imagine sticky paper that catches your negative thoughts as they fly about. &lt;br /&gt;Imagine a "stop" sign that blocks your negative thoughts. &lt;br /&gt;Imagine a box that your negative thoughts get trapped in. &lt;br /&gt;Imagine you are driving through a car wash that washes the thoughts away. &lt;br /&gt;Need To Know: &lt;br /&gt;And the secret is... &lt;br /&gt;The secret to making these four "respond" techniques work is to practice them several times a week, until you feel comfortable. Then use them. And don't give up on them too soon. All too often, people will only try something a couple of times and give up after a few days. It may take a while before you are getting the full benefit of these techniques.  &lt;br /&gt;&lt;br /&gt;"Prevent"&lt;br /&gt;There are simple things you can do to help your body and mind withstand stress. These will help you improve your immune system, your energy level, your self-esteem, and your sense of well-being.&lt;br /&gt;1. Relaxation. Relaxing regularly will help prevent stress. &lt;br /&gt;Set aside just 15 minutes every day, whether you are feeling stressed or not. &lt;br /&gt;Go through whatever relaxation procedures work best for you. Techniques such as yoga and stretching can be effective, as can progressive muscle relaxation . &lt;br /&gt;2. Regular exercise. If you know people who run, swim, or bicycle regularly, you may notice that they have less stress than others. When your body is in first-class condition, your mind and emotions will also benefit. Regular exercise is one excellent way to "stress-proof" yourself, or at reduce the bad effects of stress. &lt;br /&gt;Exercise can make you look better, sleep better, concentrate better, and withstand disease better. It will also improve your mood and make you feel better about yourself. The best exercise for stress-proofing is aerobic activity, which uses your whole body. This includes jogging, bicycling, brisk walking, cross-country skiing, aerobic dancing, swimming, rowing, skating, and stair-stepping. &lt;br /&gt;If you are not used to exercise, start with walking. Walk briskly for about 20 minutes, three times a week. &lt;br /&gt;As you get in shape, take longer walks, or switch to a more vigorous form of activity. &lt;br /&gt;If you don't have access to a lake, mountain, or country road to row, ski, or bike on, substitute on machines at home or in a gym. But whenever you can, get out into nature. The quietness and change of scene will help your stress levels. &lt;br /&gt; &lt;br /&gt;Need To Know: &lt;br /&gt;Some exercise safety tips:&lt;br /&gt;If you are over age 35 and not used to vigorous exercise, check with a doctor before you start, or stick to walking. &lt;br /&gt;Begin every exercise session slowly (including walks), and don't speed up until your muscles are warm. &lt;br /&gt;Don't race. Take the talk test. If you don't have enough spare breath to hold a conversation, slow down. &lt;br /&gt;At the end of your exercise session, walk around slowly for a while to cool down.  &lt;br /&gt;&lt;br /&gt;3. Eating right. You will be much better able to withstand stress if your body feels good, and it can't feel good if you don't feed it properly. &lt;br /&gt;Make sure you have three good meals a day, with plenty of fruit, vegetables, and filling food like bread, rice, or noodles. &lt;br /&gt;If you get hungry between meals, plan for a nutritious snack like fruit, yogurt, or a bagel. If you take a snack to work with you, you won't be tempted by junk food. &lt;br /&gt;Eating well will give you a sense of control that can help to reduce your stress levels, as well as making you feel good physically.&lt;br /&gt;4. Chemicals: alcohol and drugs. People may be tempted to take a drink or drugs to deal with stress. It doesn't help. Alcohol may seem to calm you down, but it only masks the symptoms of stress for a while. Excessive alcohol (and drugs) will give you a rebound; you are likely to feel more stressed than ever when the effects wear off. &lt;br /&gt;One or two drinks a day, such as a glass of wine or beer with dinner, usually won't harm you. If you are regularly drinking much more than that, cut down - and if that is hard to do, get some help. &lt;br /&gt;5. Tobacco. People often say that a cigarette "calms their nerves," but tobacco is really a stimulant. If you are afraid that quitting would cause you too much stress, talk to your doctor about prescribing a nicotine patch or gum to help ease the difficulty of withdrawal. Patches or gum work best if you also join a quit-smoking group or use a good self-help program that helps you learn to be a nonsmoker. In the long run, you will become a calmer person if you stop smoking. &lt;br /&gt; &lt;br /&gt;6. Caffeine. People have different reactions to caffeine, and most people can take two or three cups of coffee or tea a day without trouble. But you might try cutting down your caffeine intake, to see if you are less jumpy. (If you get a headache for a few days, don't worry; that's a normal withdrawal symptom, and it will go away within a week.) &lt;br /&gt; &lt;br /&gt;Other Ways To Manage Stress&lt;br /&gt;In addition to the relaxation practices described in the "TARP" method, there are many activities and methods that can help manage stress. These include:&lt;br /&gt;Humor &lt;br /&gt;Hobbies &lt;br /&gt;Meditation &lt;br /&gt;Biofeedback &lt;br /&gt;Massage therapy &lt;br /&gt;Humor&lt;br /&gt;Many stress-management experts recommend keeping a sense of humor during difficult situations. Laughing releases muscle tension and helps a person maintain perspective. &lt;br /&gt;Activities as simple as watching a funny movie, listening to a tape of a comedian's routine, or sharing time with a humorous friend can provide a psychological lift and relieve stress.&lt;br /&gt;Hobbies&lt;br /&gt;Regular leisure activities are important in reducing stress. Many people benefit from making time for positive leisure pursuits rather than, for example, spending time watching television in the evening (although that, too, can be relaxing to some degree). &lt;br /&gt;Relaxing hobbies include gardening, painting, bicycling, photography, carpentry, collecting, and many others. In order to obtain the most relaxation and enjoyment, the satisfaction should come in doing the hobby, not in the results. An individual who pursues gardening for relaxation may not grow prize-winning vegetables, but they can be eaten. An amateur photographer may not sell photographs, but they can be admired by friends and family. &lt;br /&gt;Meditation&lt;br /&gt;Used for many years in Eastern cultures, meditation is becoming more widely accepted in the U.S. as a relaxation technique. Meditation reduces heart rate, blood pressure, adrenaline levels, and skin temperature. &lt;br /&gt;There are a variety of meditation techniques that share a common goal: to achieve relaxation by clearing the mind of stressful outside interferences. Meditation involves achieving a state of consciousness in which the individual focuses on a single thing, such as a key word, sound, or image. &lt;br /&gt;Meditation techniques rely on quiet surroundings, sitting still, and a repetitive mental pattern. Various techniques are taught in instruction books and through religious and nonreligious organizations.&lt;br /&gt;Biofeedback&lt;br /&gt;Biofeedback provides a way for people to learn to control activities over which they normally have no awareness, such as heart rate and muscle tension. It is considered by many health professionals to be a valuable therapeutic tool for reducing stress. Biofeedback involves no discomfort and no risk. &lt;br /&gt;Biofeedback relies on sensitive electronic equipment. Sensors are placed on the body at various locations to measure skin temperature and muscle activity. The sensors are attached to a monitor that detects fluctuations when a person is anxious and displays signals in the form of beeps or light flashes. By watching the monitor, a person learns to control these stressful responses. &lt;br /&gt;Massage Therapy&lt;br /&gt;Massage is the gentle practice of manipulating the body's tissues in order to soothe and heal. It is one of the most ancient of the healing arts, and more people today are relying on it for natural, drug-free relief from the effects of busy, overstressed lives. Massage can relax the entire body and provide new energy that lingers long after the massage is over. &lt;br /&gt;A number of research studies have shown that massage reduces heart rate, lowers blood pressure, increases blood circulation and lymph flow, relaxes muscles, improves range of motion, and increases the production of endorphins, which are the body's own natural painkillers. There are a number of massage therapy techniques, including Swedish massage and Shiatsu. &lt;br /&gt;Massages can be for the full body or particular areas of the body, such as the back and shoulders. Some people choose to wear some clothing during a massage; others prefer to undress or use a dressing gown. During a massage, the person is warmly covered, and only the part of the body on which the therapist is working is uncovered. &lt;br /&gt;Need To Know: &lt;br /&gt;A word about medication &lt;br /&gt;Medication can be useful for dealing with short periods of acute stress, where the anxiety is severe and disabling, to help people regain control and begin coping. It can relieve symptoms temporarily, but it does not address the underlying problem.  &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;When To Get Extra Help&lt;br /&gt;Self-help techniques for stress management have tremendous potential. They are easy to use, they're economical, and they are good for your general health. However, there may be times when you need other help in dealing with stress. &lt;br /&gt;To help you decide if you need additional help, here are some questions to ask yourself:&lt;br /&gt;Is stress really the problem? Sometimes, people may be too quick to blame stress if they are tired, or their backaches, or they are having trouble eating or sleeping. Check with your doctor to rule out physical reasons for these symptoms before you conclude that they are caused by stress. &lt;br /&gt;Is it more than stress? You may have psychological problems that are more complicated than stress. If you are frequently depressed, often feel panic, or think you may have a phobia (an abnormal fear of an object, experience, or place), consult a doctor or psychologist. &lt;br /&gt;Do you need technical help? Technical help can come in the form of books, videos, consultations with experts or the leader of a stress-management group. Here are some suggestions. &lt;br /&gt;Consultation With An Expert&lt;br /&gt;You may want the guidance that comes from individual consultation with a professional. An expert in stress management can do an assessment to identify which techniques would best suit your skills, temperament, and needs. Professional that help individuals cope with stress include: &lt;br /&gt;Psychologist &lt;br /&gt;Psychotherapist &lt;br /&gt;Nurse &lt;br /&gt;Physician &lt;br /&gt;Exercise instructor &lt;br /&gt;Dietitian&lt;div class="blogger-post-footer"&gt;Please Add Comment About me.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3118855886814420426-113694347728531200?l=itspravingodbole.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://itspravingodbole.blogspot.com/2007/05/what-is-stress.html</link><author>noreply@blogger.com (pravin)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3118855886814420426.post-7603010493873424063</guid><pubDate>Tue, 15 May 2007 12:39:00 +0000</pubDate><atom:updated>2007-05-15T05:39:33.663-07:00</atom:updated><title>Does Love need a Reason......?</title><description>Does Love need a Reason......?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Once a lady when having a conversation with her lover, asked:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lady : Why do you like me..? Why do you love me?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Man : I can t tell the reason.. but I really like you.. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lady : You can t even tell me the reason... how can you say you like me? How can you say you love me?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Man : I really don t know the reason, but I can prove that I loveU.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lady : Proof? No! I want you to tell me the reason. My friend s boyfriend can tell her why he loves her but not you! &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Man : Ok..ok!!! Erm... because you are beautiful,&lt;br /&gt;&lt;br /&gt;because your voice is sweet,&lt;br /&gt;&lt;br /&gt;because you are caring,&lt;br /&gt;&lt;br /&gt;because you are loving,&lt;br /&gt;&lt;br /&gt;because you are thoughtful,&lt;br /&gt;&lt;br /&gt;because of your smile, &lt;br /&gt;&lt;br /&gt;because of your every movements.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The lady felt very satisfied with the man s answer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately, a few days later, the Lady met with an accident and went in comma.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Guy then placed a letter by her side, and here is the content: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Darling,&lt;br /&gt;&lt;br /&gt;Because of your sweet voice that I love you...&lt;br /&gt;&lt;br /&gt;Now can you talk? No! Therefore I cannot love you.&lt;br /&gt;&lt;br /&gt;Because of your care and concern that I like you.. &lt;br /&gt;&lt;br /&gt;Now that you cannot show them, therefore I cannot love you. &lt;br /&gt;&lt;br /&gt;Because of your smile,&lt;br /&gt;&lt;br /&gt;because of your every movements that I love you..&lt;br /&gt;&lt;br /&gt;Now can you smile? Now can you move?&lt;br /&gt;&lt;br /&gt;No, therefore I cannot love you... &lt;br /&gt;&lt;br /&gt;If love needs a reason, like now,&lt;br /&gt;&lt;br /&gt;There is no reason for me to love you anymore.&lt;br /&gt;&lt;br /&gt;Does love need a reason? NO!&lt;br /&gt;&lt;br /&gt;Therefore, I still love you... &lt;br /&gt; &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;itspravingodbole&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;br /&gt; &lt;br /&gt;  &lt;br /&gt;believe in angels, &lt;br /&gt;The kind that heaven sends, &lt;br /&gt;I am surrounded by angels, &lt;br /&gt;But I call them friends&lt;br /&gt;......itspravingodbole&lt;br /&gt;  &lt;br /&gt; &lt;br /&gt;itspravingodbole&lt;div class="blogger-post-footer"&gt;Please Add Comment About me.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3118855886814420426-7603010493873424063?l=itspravingodbole.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://itspravingodbole.blogspot.com/2007/05/does-love-need-reason.html</link><author>noreply@blogger.com (pravin)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3118855886814420426.post-2115186821329647561</guid><pubDate>Tue, 15 May 2007 12:38:00 +0000</pubDate><atom:updated>2007-05-15T05:38:47.553-07:00</atom:updated><title>Sending all my Love to You!</title><description>Sending all my Love to You!&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;   &lt;br /&gt;Have you have wondered &lt;br /&gt;If, how, when and where&lt;br /&gt;You would ever find true love&lt;br /&gt;And find someone who cared?&lt;br /&gt; &lt;br /&gt;   &lt;br /&gt;Sometimes it takes a lifetime &lt;br /&gt;And sometimes you never do&lt;br /&gt;But special things take a while&lt;br /&gt;If they're really true&lt;br /&gt; &lt;br /&gt;   &lt;br /&gt;It didn't take a lifetime &lt;br /&gt;But pain, hurt and strife&lt;br /&gt;And now that I found you&lt;br /&gt;I know it was all worth the time&lt;br /&gt; &lt;br /&gt;   &lt;br /&gt;You love me unconditionally &lt;br /&gt;So real and so true&lt;br /&gt;So now I have to wonder&lt;br /&gt;How did l live without you?&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;You bring me joy and happiness &lt;br /&gt;In everything you do&lt;br /&gt;And I just want to thank you&lt;br /&gt;And send all my Love to You!&lt;br /&gt; &lt;br /&gt;   &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt; &lt;br /&gt;  itspravingodbole&lt;div class="blogger-post-footer"&gt;Please Add Comment About me.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3118855886814420426-2115186821329647561?l=itspravingodbole.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://itspravingodbole.blogspot.com/2007/05/sending-all-my-love-to-you.html</link><author>noreply@blogger.com (pravin)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3118855886814420426.post-696652639481331632</guid><pubDate>Tue, 15 May 2007 12:36:00 +0000</pubDate><atom:updated>2007-05-15T05:36:37.987-07:00</atom:updated><title>good one strory</title><description>A boy was born to a couple after eleven years of marriage. They were a loving couple and the boy was the gem of their eyes. When the boy was around two years old, one morning the husband saw a medicine bottle open. He was late for office so he asked his wife to cap the bottle and keep it in the cupboard. His wife, preoccupied in the kitchen totally forgot the matter. &lt;br /&gt;&lt;br /&gt;The boy saw the bottle and playfully went to the bottle fascinated by its color and drank it all. It happened to be a poisonous medicine meant for adults in small dosages. When the child collapsed the mother hurried him to the hospital, where he died. The mother was stunned. She was terrified how to face her husband. &lt;br /&gt;&lt;br /&gt;When the distraught father came to the hospital and saw the dead child, he looked at his wife and uttered just five words.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;QUESTIONS&lt;br /&gt;:&lt;br /&gt;1. What were the five words ?&lt;br /&gt;2. What is the implication of this story? &lt;br /&gt;Let's be understanding&lt;br /&gt;scroll down to read....&lt;br /&gt;*&lt;br /&gt;*&lt;br /&gt;*&lt;br /&gt;*&lt;br /&gt;*&lt;br /&gt;*&lt;br /&gt;*&lt;br /&gt;*&lt;br /&gt;*&lt;br /&gt;ANSWER :&lt;br /&gt;&lt;br /&gt;The husband just said "I am with you Darling"&lt;br /&gt;&lt;br /&gt;The husband's totally unexpected reaction is a proactive behavior. &lt;br /&gt;The child is dead. He can never be brought back to life. There is no point in finding fault with the mother.&lt;br /&gt;Besides, if only he had taken time to keep the bottle away, this would not have happened.&lt;br /&gt;No one is to be blamed. She had also lost her only child. What she needed at that moment was consolation and sympathy from the husband. That is what he gave her. &lt;br /&gt;&lt;br /&gt;If everyone can look at life with this kind of perspective, there would be much fewer problems in the world. "&lt;br /&gt;A journey of a thousand miles begins with a single step.&lt;br /&gt;Take off all your envies, jealousies,unforgiv eness, selfishness, and fears. And you will find things are actually not as difficult as you think. &lt;br /&gt;&lt;br /&gt;MORAL OF THE STORY&lt;br /&gt;This story is really worth reading. ..... Sometimes we spend time in asking who is responsible or whom to blame, whether in a relationship, in a job or with the people we know. By this way we miss out something&lt;div class="blogger-post-footer"&gt;Please Add Comment About me.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3118855886814420426-696652639481331632?l=itspravingodbole.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://itspravingodbole.blogspot.com/2007/05/good-one-strory.html</link><author>noreply@blogger.com (pravin)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3118855886814420426.post-2520130925646448485</guid><pubDate>Tue, 15 May 2007 12:35:00 +0000</pubDate><atom:updated>2007-05-15T05:35:51.315-07:00</atom:updated><title>प्रिये तुझ्याविना</title><description>प्रिये तुझ्याविना&lt;br /&gt;नाही आयुष्याला अर्थ काही&lt;br /&gt;ग सजणे तुझ्याविना,&lt;br /&gt;नाही शक्य ग माझे जगणे&lt;br /&gt;आता प्रिये तुझ्याविना.&lt;br /&gt;&lt;br /&gt;माझे सारे काव्य वाटु लागते&lt;br /&gt;सुनेसुने तुझ्या गोड आठवणींविना,&lt;br /&gt;नाही सरत दिवस माझा&lt;br /&gt;तुझा आवाज ऐकल्याविना.&lt;br /&gt;&lt;br /&gt;कशी होतील ग सखे&lt;br /&gt;स्वप्ने माझी तुझ्याविना&lt;br /&gt;कोण देणार ग साथ माझी&lt;br /&gt;सुखः दुःखात फक्त तुझ्याविना&lt;br /&gt;&lt;br /&gt;विचार माझे थांबतात&lt;br /&gt;मन माझे भरुन येते,&lt;br /&gt;वरुन जरी शांत दिसलो तरी&lt;br /&gt;मनात दडलेले एक वादळ असते,&lt;br /&gt;आठवणी मनात दाटुन आल्या&lt;br /&gt;की प्रेम डोळ्यांतुन अश्रु बनुन वाहु लागते,&lt;br /&gt;&lt;br /&gt;आणी मग,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;वेडे मन माझं त्या वेड्या आठवणींवर काव्य बनवु लागते................................&lt;div class="blogger-post-footer"&gt;Please Add Comment About me.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3118855886814420426-2520130925646448485?l=itspravingodbole.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://itspravingodbole.blogspot.com/2007/05/blog-post.html</link><author>noreply@blogger.com (pravin)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3118855886814420426.post-9176230639987994752</guid><pubDate>Tue, 15 May 2007 12:24:00 +0000</pubDate><atom:updated>2007-05-15T05:33:36.848-07:00</atom:updated><title>10 Rules For A Good Day</title><description>1. TODAY I WILL NOT STRIKE BACK: &lt;br /&gt;If someone is rude, if someone is impatient, if someone is unkind...&lt;br /&gt;I will not respond in a like manner. &lt;br /&gt;&lt;br /&gt;2. TODAY I WILL ASK GOD TO BLESS MY "ENEMY":&lt;br /&gt;If I come across someone who treats me harshly or unfairly, I will &lt;br /&gt;quietly ask God to bless that individual. I understand the "enemy"&lt;br /&gt;could be a family member, neighbor, co-worker, or a stranger.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. TODAY I WILL BE CAREFUL ABOUT WHAT I SAY:&lt;br /&gt;I will carefully choose and guard my words being certain that I do &lt;br /&gt;not spread gossip.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. TODAY I WILL GO THE EXTRA MILE:&lt;br /&gt;I will find ways to help share the burden of another person.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. TODAY I WILL FORGIVE:&lt;br /&gt;I will forgive any hurts or injuries that come my way. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6. TODAY I WILL DO SOMETHING NICE FOR SOMEONE,&lt;br /&gt;BUT I WILL NOT DO IT SECRETLY:&lt;br /&gt;I will reach out anonymously and bless the life of another. &lt;br /&gt;&lt;br /&gt;7. TODAY I WILL TREAT OTHERS THE WAY I WISH TO BE&lt;br /&gt;TREATED: &lt;br /&gt;I will practice the golden rule - "Do unto others as I would have&lt;br /&gt;them do unto me" - with everyone I encounter.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;8. TODAY I WILL RAISE THE SPIRITS OF SOMEONE I&lt;br /&gt;DISCOURAGED:&lt;br /&gt;My smile, my words, my expression of support, can make the &lt;br /&gt;difference to someone who is wrestling life.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;9. TODAY I WILL NUTURE MY BODY:&lt;br /&gt;I will eat less; I will eat only healthy foods. I will thank God for my&lt;br /&gt;body. &lt;br /&gt;&lt;br /&gt;10. TODAY I WILL GROW SPIRITUALLUY:&lt;br /&gt;I will spend a little more time in prayer today: I will begin reading&lt;br /&gt;something spiritual or inspirational today; I will find a quiet place&lt;br /&gt;(at some point during the day)!&lt;div class="blogger-post-footer"&gt;Please Add Comment About me.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3118855886814420426-9176230639987994752?l=itspravingodbole.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://itspravingodbole.blogspot.com/2007/05/10-rules-for-good-day.html</link><author>noreply@blogger.com (pravin)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3118855886814420426.post-3118372375967126706</guid><pubDate>Tue, 15 May 2007 12:18:00 +0000</pubDate><atom:updated>2007-05-15T05:22:54.506-07:00</atom:updated><title>ASP DOT NET</title><description>Build Your Own ASP.NET Website&lt;br /&gt;Using C# &amp; VB.NET&lt;br /&gt;(Chapters 1, 2, 3 and 4)&lt;br /&gt;Thank you for downloading the sample chapters of Zak&lt;br /&gt;Ruvalcaba’s book, Build Your Own ASP.NET Website Using C# &amp;amp;&lt;br /&gt;VB.NET, published by SitePoint.&lt;br /&gt;This excerpt includes the Summary of Contents, Information&lt;br /&gt;about the Author, Editors and SitePoint, Table of Contents,&lt;br /&gt;Preface, 4 chapters of the book and the index.&lt;br /&gt;We hope you find this information useful in evaluating this book.&lt;br /&gt;For more information, visit sitepoint.com&lt;br /&gt;Summary of Contents of this Excerpt&lt;br /&gt;Preface ..........................................................................................xi&lt;br /&gt;1. Introduction to .NET and ASP.NET ...................................... 1&lt;br /&gt;2. ASP.NET Basics..................................................................... 31&lt;br /&gt;3. VB.NET and C# Programming Basics .................................. 47&lt;br /&gt;4. Web Forms and Web Controls ............................................. 85&lt;br /&gt;Index......................................................................................... 721&lt;br /&gt;Summary of Additional Book Contents&lt;br /&gt;5. Validation Controls ............................................................. 131&lt;br /&gt;6. Database Design and Development .................................... 161&lt;br /&gt;7. Structured Query Language................................................. 197&lt;br /&gt;8. ADO.NET ............................................................................ 243&lt;br /&gt;9. The DataGrid and DataList Controls ................................. 305&lt;br /&gt;10. DataSets............................................................................. 363&lt;br /&gt;11. Web Applications .............................................................. 421&lt;br /&gt;12. Building an ASP.NET Shopping Cart............................... 451&lt;br /&gt;13. Error Handling................................................................... 497&lt;br /&gt;14. Security and User Authentication..................................... 531&lt;br /&gt;15. Working with Files and Email........................................... 559&lt;br /&gt;16. Rich Controls and User Controls ...................................... 597&lt;br /&gt;17. XML Web Services ............................................................ 645&lt;br /&gt;A. HTML Control Reference ................................................... 683&lt;br /&gt;B. Web Control Reference....................................................... 699&lt;br /&gt;C. Validation Control Reference ............................................. 715&lt;br /&gt;Build Your Own ASP.NET&lt;br /&gt;Website Using C# &amp; VB.NET&lt;br /&gt;by Zak Ruvalcaba&lt;br /&gt;Build Your Own ASP.NET Website Using C# &amp;amp; VB.NET&lt;br /&gt;by Zak Ruvalcaba&lt;br /&gt;Copyright © 2004 SitePoint Pty. Ltd.&lt;br /&gt;Expert Reviewer: Kevin Yank Editor: Georgina Laidlaw&lt;br /&gt;Technical Editor: Rich Deeson Managing Editor: Simon Mackie&lt;br /&gt;Index Editor: Bill Johncocks Cover Design: Julian Carroll&lt;br /&gt;Printing History:&lt;br /&gt;First Edition: April 2004&lt;br /&gt;Notice of Rights&lt;br /&gt;All rights reserved. No part of this book may be reproduced, stored in a retrieval system or transmitted&lt;br /&gt;in any form or by any means, without the prior written permission of the publisher, except in the&lt;br /&gt;case of brief quotations embodied in critical articles or reviews.&lt;br /&gt;Notice of Liability&lt;br /&gt;The author and publisher have made every effort to ensure the accuracy of the information herein.&lt;br /&gt;However, the information contained in this book is sold without warranty, either express or implied.&lt;br /&gt;Neither the authors and SitePoint Pty. Ltd., nor its dealers or distributors will be held liable for any&lt;br /&gt;damages to be caused either directly or indirectly by the instructions contained in this book, or by&lt;br /&gt;the software or hardware products described herein.&lt;br /&gt;Trademark Notice&lt;br /&gt;Rather than indicating every occurrence of a trademarked name as such, this book uses the names&lt;br /&gt;only in an editorial fashion and to the benefit of the trademark owner with no intention of infringement&lt;br /&gt;of the trademark.&lt;br /&gt;Published by SitePoint Pty. Ltd.&lt;br /&gt;424 Smith Street Collingwood&lt;br /&gt;VIC Australia 3066.&lt;br /&gt;Web: www.sitepoint.com&lt;br /&gt;Email: business@sitepoint.com&lt;br /&gt;ISBN 0–9579218–6–1&lt;br /&gt;Printed and bound in the United States of America&lt;br /&gt;About The Author&lt;br /&gt;Zak Ruvalcaba has been designing, developing and researching for the Web since 1995.&lt;br /&gt;He holds a Bachelor’s Degree from San Diego State University and a Master of Science&lt;br /&gt;in Instructional Technology from National University in San Diego.&lt;br /&gt;In the course of his career, Zak has developed Web applications for such companies as&lt;br /&gt;Gateway, HP, Toshiba, and IBM. More recently, he’s worked as a wireless software engineer&lt;br /&gt;developing .NET solutions for Goldman Sachs, TV Guide, The Gartner Group, Microsoft&lt;br /&gt;and Qualcomm. Currently, Zak holds a programming position with ADCS Inc. in San&lt;br /&gt;Diego supporting internal .NET applications.&lt;br /&gt;Previous books by Zak Ruvalcaba include The 10 Minute Guide to Dreamweaver 4 (Que&lt;br /&gt;Publishing) and Dreamweaver MX Unleashed (Sams Publishing). He also lectures on various&lt;br /&gt;technologies and tools including Dreamweaver and ASP.NET for the San Diego Community&lt;br /&gt;College District.&lt;br /&gt;About The Expert Reviewer&lt;br /&gt;As Technical Director for SitePoint, Kevin Yank oversees all of its technical publications—&lt;br /&gt;books, articles, newsletters and blogs. He has written over 50 articles for SitePoint&lt;br /&gt;on technologies including PHP, XML, ASP.NET, Java, JavaScript and CSS, but is perhaps&lt;br /&gt;best known for his book, Build Your Own Database Driven Website Using PHP &amp; MySQL,&lt;br /&gt;also from SitePoint.&lt;br /&gt;Having graduated from McGill University in Montreal with a Bachelor of Computer Engineering,&lt;br /&gt;Kevin now lives in Melbourne, Australia. In his spare time he enjoys flying light&lt;br /&gt;aircraft and learning the fine art of improvised acting. Go you big red fire engine!&lt;br /&gt;About The Technical Editor&lt;br /&gt;Rich Deeson wrote his first programs at the age of 10 on his father’s work machine, a&lt;br /&gt;380Z with 256k RAM. Since then, his career has taken him around Europe, and has&lt;br /&gt;taught him the ins and outs of many languages, from C++ to Java, from QuickBasic (the&lt;br /&gt;precursor to Visual Basic) to VB.NET, from Perl and CGI to JSP and ASP.NET. Currently,&lt;br /&gt;he is lead JSP developer at ICTI in the UK, and most of his free time is taken up at University,&lt;br /&gt;having returned to study last year.&lt;br /&gt;About SitePoint&lt;br /&gt;SitePoint specializes in publishing fun, practical and easy-to-understand content for Web&lt;br /&gt;Professionals. Visit http://www.sitepoint.com/ to access our books, newsletters, articles&lt;br /&gt;and community forums.&lt;br /&gt;For my wife Jessica.&lt;br /&gt;ii&lt;br /&gt;Table of Contents&lt;br /&gt;Preface ..................................................................................................... xi&lt;br /&gt;Who Should Read This Book? ............................................................ xii&lt;br /&gt;What’s Covered In This Book? ........................................................... xii&lt;br /&gt;The Book’s Website ............................................................................ xv&lt;br /&gt;The Code Archive ....................................................................... xv&lt;br /&gt;Updates and Errata .................................................................... xvi&lt;br /&gt;The SitePoint Forums ........................................................................ xvi&lt;br /&gt;The SitePoint Newsletters .................................................................. xvi&lt;br /&gt;Your Feedback ................................................................................... xvi&lt;br /&gt;Acknowledgements ........................................................................... xvii&lt;br /&gt;1. Introduction to .NET and ASP.NET ......................................................... 1&lt;br /&gt;What is .NET? ..................................................................................... 1&lt;br /&gt;What is ASP.NET? .............................................................................. 2&lt;br /&gt;What Do I Need? ................................................................................ 5&lt;br /&gt;Installing the Required Software ........................................................... 5&lt;br /&gt;Installing Internet Information Services (IIS) ................................ 6&lt;br /&gt;Installing Internet Explorer .......................................................... 7&lt;br /&gt;Installing the .NET Framework and SDK ..................................... 8&lt;br /&gt;Configuring IIS ............................................................................ 9&lt;br /&gt;Installing Microsoft Access ......................................................... 18&lt;br /&gt;Installing SQL Server Desktop Engine (MSDE) .......................... 19&lt;br /&gt;Installing and Configuring Web Data Administrator ................... 22&lt;br /&gt;Your First ASP.NET Page ................................................................... 23&lt;br /&gt;The ASP.NET Support Site ................................................................ 29&lt;br /&gt;Summary ........................................................................................... 29&lt;br /&gt;2. ASP.NET Basics .................................................................................... 31&lt;br /&gt;ASP.NET Page Structure .................................................................... 32&lt;br /&gt;Directives .................................................................................. 33&lt;br /&gt;Code Declaration Blocks ............................................................ 34&lt;br /&gt;Code Render Blocks ................................................................... 36&lt;br /&gt;ASP.NET Server Controls .......................................................... 37&lt;br /&gt;Server-Side Comments ............................................................... 38&lt;br /&gt;Server-Side Include Directives .................................................... 39&lt;br /&gt;Literal Text and HTML Tags ...................................................... 39&lt;br /&gt;View State ......................................................................................... 40&lt;br /&gt;Working With Directives ................................................................... 43&lt;br /&gt;ASP.NET Languages .......................................................................... 44&lt;br /&gt;VB.NET .................................................................................... 44&lt;br /&gt;C# ............................................................................................. 45&lt;br /&gt;Summary .......................................................................................... 45&lt;br /&gt;3. VB.NET and C# Programming Basics ..................................................... 47&lt;br /&gt;Programming Basics ........................................................................... 47&lt;br /&gt;Control Events and Subroutines ................................................. 48&lt;br /&gt;Page Events ............................................................................... 52&lt;br /&gt;Variables and Variable Declaration ............................................. 54&lt;br /&gt;Arrays ........................................................................................ 57&lt;br /&gt;Functions ................................................................................... 59&lt;br /&gt;Operators ................................................................................... 63&lt;br /&gt;Conditional Logic ...................................................................... 65&lt;br /&gt;Loops ........................................................................................ 66&lt;br /&gt;Understanding Namespaces ............................................................... 70&lt;br /&gt;Object Oriented Programming Concepts ............................................ 72&lt;br /&gt;Objects ...................................................................................... 73&lt;br /&gt;Properties .................................................................................. 74&lt;br /&gt;Methods .................................................................................... 75&lt;br /&gt;Classes ....................................................................................... 76&lt;br /&gt;Scope ......................................................................................... 78&lt;br /&gt;Events ........................................................................................ 78&lt;br /&gt;Understanding Inheritance ......................................................... 79&lt;br /&gt;Separating Code From Content With Code-Behind ............................ 79&lt;br /&gt;Summary ........................................................................................... 84&lt;br /&gt;4. Web Forms and Web Controls .............................................................. 85&lt;br /&gt;Working with HTML Controls ........................................................... 86&lt;br /&gt;HtmlAnchor .............................................................................. 87&lt;br /&gt;HtmlButton ............................................................................... 88&lt;br /&gt;HtmlForm ................................................................................. 88&lt;br /&gt;HtmlImage ................................................................................ 89&lt;br /&gt;HtmlGenericControl .................................................................. 89&lt;br /&gt;HtmlInputButton ...................................................................... 90&lt;br /&gt;HtmlInputCheckBox .................................................................. 90&lt;br /&gt;HtmlInputFile ............................................................................ 91&lt;br /&gt;HtmlInputHidden ...................................................................... 91&lt;br /&gt;HtmlInputImage ........................................................................ 91&lt;br /&gt;HtmlInputRadioButton .............................................................. 92&lt;br /&gt;HtmlInputText .......................................................................... 92&lt;br /&gt;HtmlSelect ................................................................................. 92&lt;br /&gt;HtmlTable, HtmlTableRow and HtmlTableCell .......................... 93&lt;br /&gt;HtmlTextArea ............................................................................ 94&lt;br /&gt;Order the print version of this book to get all 700+ pages! iv&lt;br /&gt;Build Your Own ASP.NET Website Using C# &amp;amp; VB.NET&lt;br /&gt;Processing a Simple Form ................................................................... 94&lt;br /&gt;Introduction to Web Forms ................................................................ 97&lt;br /&gt;Introduction to Web Controls ............................................................ 98&lt;br /&gt;Basic Web Controls ................................................................. 100&lt;br /&gt;Handling Page Navigation ................................................................ 107&lt;br /&gt;Using The HyperLink Control .................................................. 108&lt;br /&gt;Navigation Objects And Their Methods .................................... 108&lt;br /&gt;Postback .......................................................................................... 112&lt;br /&gt;Formatting Controls with CSS ......................................................... 114&lt;br /&gt;Types of Styles and Style Sheets .............................................. 115&lt;br /&gt;Style Properties ........................................................................ 117&lt;br /&gt;The CssClass Property ............................................................. 118&lt;br /&gt;A Navigation Menu and Web Form for the Intranet Application ....... 119&lt;br /&gt;Introducing the Dorknozzle Intranet Application ..................... 119&lt;br /&gt;Building the Navigation Menu ................................................. 120&lt;br /&gt;Create the Corporate Style Sheet ............................................. 124&lt;br /&gt;Design the Web Form for the Helpdesk Application ................. 127&lt;br /&gt;Summary ......................................................................................... 129&lt;br /&gt;5. Validation Controls ............................................................................ 131&lt;br /&gt;Client-Side vs. Server-Side Validation ............................................... 131&lt;br /&gt;Configuring Client-Side Validation ................................................... 133&lt;br /&gt;Using Validation Controls ................................................................ 135&lt;br /&gt;RequiredFieldValidator ............................................................ 135&lt;br /&gt;CompareValidator .................................................................... 139&lt;br /&gt;RangeValidator ........................................................................ 145&lt;br /&gt;ValidationSummary ................................................................. 149&lt;br /&gt;RegularExpressionValidator ...................................................... 153&lt;br /&gt;CustomValidator ..................................................................... 157&lt;br /&gt;Summary ......................................................................................... 159&lt;br /&gt;6. Database Design and Development .................................................... 161&lt;br /&gt;An Introduction to Databases ........................................................... 161&lt;br /&gt;The Database Management System .................................................. 163&lt;br /&gt;Creating the Database for the Intranet Application ................... 164&lt;br /&gt;Designing Tables for the Intranet Application ........................... 166&lt;br /&gt;Columns and Data Types ......................................................... 169&lt;br /&gt;Inserting Rows ......................................................................... 178&lt;br /&gt;Beyond the Basics ............................................................................ 182&lt;br /&gt;Keys ........................................................................................ 182&lt;br /&gt;Relationship Management ........................................................ 185&lt;br /&gt;Stored Procedures .................................................................... 194&lt;br /&gt;v Order the print version of this book to get all 700+ pages!&lt;br /&gt;Queries .................................................................................... 195&lt;br /&gt;Security ................................................................................... 195&lt;br /&gt;Summary ......................................................................................... 196&lt;br /&gt;7. Structured Query Language ................................................................ 197&lt;br /&gt;Basic SQL ........................................................................................ 198&lt;br /&gt;Working with the Query Editor in Access ................................. 199&lt;br /&gt;Working with the Query Editor in Web Data Administrator ..... 203&lt;br /&gt;The SELECT Query ................................................................. 204&lt;br /&gt;The INSERT Statement ........................................................... 214&lt;br /&gt;The UPDATE Statement ......................................................... 217&lt;br /&gt;The DELETE Statement .......................................................... 220&lt;br /&gt;Other Clauses .................................................................................. 220&lt;br /&gt;The ORDER BY Clause ............................................................ 220&lt;br /&gt;The GROUP BY and HAVING Clauses .................................... 222&lt;br /&gt;Expressions ...................................................................................... 222&lt;br /&gt;Operators ......................................................................................... 224&lt;br /&gt;Functions ......................................................................................... 226&lt;br /&gt;Date and Time Functions ......................................................... 227&lt;br /&gt;Aggregate Functions ................................................................. 229&lt;br /&gt;Arithmetic Functions ............................................................... 233&lt;br /&gt;String Functions ...................................................................... 235&lt;br /&gt;Joins ................................................................................................ 236&lt;br /&gt;INNER JOIN ........................................................................... 236&lt;br /&gt;OUTER JOIN .......................................................................... 238&lt;br /&gt;Subqueries ....................................................................................... 240&lt;br /&gt;The IN Operator ...................................................................... 240&lt;br /&gt;The Embedded SELECT Statement .......................................... 241&lt;br /&gt;Summary ......................................................................................... 241&lt;br /&gt;8. ADO.NET ........................................................................................... 243&lt;br /&gt;An Introduction to ADO.NET .......................................................... 244&lt;br /&gt;Performing Common Database Queries ............................................ 253&lt;br /&gt;Responding to User Interaction ................................................ 254&lt;br /&gt;Using Parameters with Queries ................................................. 257&lt;br /&gt;Using the Repeater Control ...................................................... 260&lt;br /&gt;Data Binding ........................................................................... 272&lt;br /&gt;Inserting Records ............................................................................. 275&lt;br /&gt;Updating Records ............................................................................ 279&lt;br /&gt;Deleting Records .............................................................................. 288&lt;br /&gt;Handling Updates with Postback ...................................................... 292&lt;br /&gt;Working with Transactions .............................................................. 295&lt;br /&gt;Order the print version of this book to get all 700+ pages! vi&lt;br /&gt;Build Your Own ASP.NET Website Using C# &amp; VB.NET&lt;br /&gt;Improving Performance with Stored Procedures ................................ 298&lt;br /&gt;Summary ......................................................................................... 303&lt;br /&gt;9. The DataGrid and DataList Controls ................................................... 305&lt;br /&gt;Working with DataGrids .................................................................. 306&lt;br /&gt;Customizing DataGrids ............................................................ 311&lt;br /&gt;Creating a Master/Detail Form with the HyperLinkColumn ...... 316&lt;br /&gt;Event Bubbling ........................................................................ 323&lt;br /&gt;Working with the EditCommandColumn ................................. 325&lt;br /&gt;Using Templates ...................................................................... 333&lt;br /&gt;Adding ButtonColumns to Delete Rows within a DataGrid ....... 336&lt;br /&gt;Using the DataList Control .............................................................. 339&lt;br /&gt;Customizing DataLists Using Styles ......................................... 344&lt;br /&gt;Editing Items within a DataList ................................................ 346&lt;br /&gt;Creating a Navigation Menu using DataLists ............................ 354&lt;br /&gt;Summary ......................................................................................... 361&lt;br /&gt;10. DataSets .......................................................................................... 363&lt;br /&gt;Understanding DataSets .................................................................. 364&lt;br /&gt;DataSet Elements .................................................................... 367&lt;br /&gt;Binding DataSets to Controls ................................................... 368&lt;br /&gt;Creating a DataGrid that Pages ................................................ 376&lt;br /&gt;Understanding DataTables ............................................................... 379&lt;br /&gt;Creating DataTables Programmatically ..................................... 380&lt;br /&gt;Creating DataColumns Programmatically ................................. 385&lt;br /&gt;Creating DataRows Programmatically ....................................... 387&lt;br /&gt;Setting DataTable Properties Programmatically ........................ 390&lt;br /&gt;Setting DataColumn Properties Programmatically .................... 393&lt;br /&gt;Adding DataColumn Values ..................................................... 398&lt;br /&gt;Defining DataRelations Between DataTables ............................ 402&lt;br /&gt;Understanding DataViews ............................................................... 407&lt;br /&gt;Filtering DataViews ................................................................. 408&lt;br /&gt;Sorting Columns in a DataGrid ................................................ 410&lt;br /&gt;Updating a Database from a Modified DataSet ................................. 414&lt;br /&gt;Summary ......................................................................................... 420&lt;br /&gt;11. Web Applications ............................................................................. 421&lt;br /&gt;Overview of ASP.NET Applications .................................................. 422&lt;br /&gt;Using Application State ................................................................... 423&lt;br /&gt;Working With the Global.asax File ........................................... 428&lt;br /&gt;Using the Web.config File ................................................................ 433&lt;br /&gt;Caching ASP.NET Applications ........................................................ 437&lt;br /&gt;Using Page Output Caching ..................................................... 438&lt;br /&gt;vii Order the print version of this book to get all 700+ pages!&lt;br /&gt;Using Page Data Caching ......................................................... 442&lt;br /&gt;Working with User Sessions ............................................................. 446&lt;br /&gt;Summary ......................................................................................... 449&lt;br /&gt;12. Building an ASP.NET Shopping Cart .................................................. 451&lt;br /&gt;What Is a Shopping Cart? ................................................................ 451&lt;br /&gt;The Intranet Shopping Cart ............................................................. 452&lt;br /&gt;Defining the Cart Framework ................................................... 455&lt;br /&gt;Building the Employee Store Interface ..................................... 459&lt;br /&gt;Showing Items and Creating the Cart Structure ........................ 465&lt;br /&gt;Adding to the Cart ................................................................... 470&lt;br /&gt;Keeping the Order Total .......................................................... 476&lt;br /&gt;Modifying Cart Quantities ....................................................... 478&lt;br /&gt;Removing Items from the Cart ................................................. 484&lt;br /&gt;Processing Orders Using PayPal ........................................................ 486&lt;br /&gt;Creating a PayPal Account ....................................................... 486&lt;br /&gt;Integrating the Shopping Cart with your PayPal Account .......... 487&lt;br /&gt;Summary ......................................................................................... 496&lt;br /&gt;13. Error Handling ................................................................................. 497&lt;br /&gt;Introduction to Error Handling ........................................................ 497&lt;br /&gt;Types of Errors ........................................................................ 498&lt;br /&gt;Viewing Error Information ....................................................... 503&lt;br /&gt;Handling Errors ....................................................................... 506&lt;br /&gt;Using the .NET Debugger ................................................................ 522&lt;br /&gt;Attaching a Process to the Debugger ......................................... 523&lt;br /&gt;Creating Breakpoints and Stepping Through Code ................... 525&lt;br /&gt;Creating Watches .................................................................... 529&lt;br /&gt;Summary ......................................................................................... 530&lt;br /&gt;14. Security and User Authentication ..................................................... 531&lt;br /&gt;Securing ASP.NET Applications ....................................................... 531&lt;br /&gt;Working with Forms Authentication ................................................ 532&lt;br /&gt;Configuring Forms Authentication ........................................... 537&lt;br /&gt;Configuring Forms Authorization ............................................. 538&lt;br /&gt;Web.config File Authentication ................................................ 540&lt;br /&gt;Database Authentication .......................................................... 542&lt;br /&gt;Custom Error Messages ............................................................ 548&lt;br /&gt;Logging Users Out ................................................................... 550&lt;br /&gt;Building Your Own Authentication Ticket ........................................ 551&lt;br /&gt;Summary ......................................................................................... 557&lt;br /&gt;Order the print version of this book to get all 700+ pages! viii&lt;br /&gt;Build Your Own ASP.NET Website Using C# &amp;amp; VB.NET&lt;br /&gt;15. Working with Files and Email ........................................................... 559&lt;br /&gt;Writing to Text Files ........................................................................ 560&lt;br /&gt;Reading from Text Files ................................................................... 565&lt;br /&gt;Accessing Directories and Directory Information .............................. 568&lt;br /&gt;Working with Directory and File Paths ............................................. 573&lt;br /&gt;Uploading Files ................................................................................ 576&lt;br /&gt;Sending Email in ASP.NET .............................................................. 579&lt;br /&gt;Configuring IIS to Send Email .................................................. 580&lt;br /&gt;Creating the Company Newsletter Page .................................... 582&lt;br /&gt;Serialization ..................................................................................... 588&lt;br /&gt;Summary ......................................................................................... 595&lt;br /&gt;16. Rich Controls and User Controls ....................................................... 597&lt;br /&gt;Introduction to Rich Controls .......................................................... 597&lt;br /&gt;An Introduction to XML and XSLT .......................................... 598&lt;br /&gt;Simplifying it All with the Xml Control .................................... 603&lt;br /&gt;The AdRotator Control ............................................................ 609&lt;br /&gt;The Calendar Control .............................................................. 611&lt;br /&gt;Introduction to User Controls .......................................................... 625&lt;br /&gt;Globalizing Content with User Controls ................................... 626&lt;br /&gt;Exposing Properties and Methods in User Controls ................... 630&lt;br /&gt;Loading User Controls Programmatically .......................................... 636&lt;br /&gt;Summary ......................................................................................... 643&lt;br /&gt;17. XML Web Services ........................................................................... 645&lt;br /&gt;Introduction to XML Web Services .................................................. 646&lt;br /&gt;Understanding Web Service Standards ..................................... 649&lt;br /&gt;A Simple Calculator Web Service ............................................. 653&lt;br /&gt;Consuming the Calculator Web Service .................................... 658&lt;br /&gt;Using WSDL to Consume Third-Party Web Services ........................ 663&lt;br /&gt;Finding the Service and Creating the Assembly ......................... 664&lt;br /&gt;Registering to Use the Google Search Service ............................ 665&lt;br /&gt;Consuming the Google Search Service ...................................... 667&lt;br /&gt;Web Service and Database Interaction ............................................. 676&lt;br /&gt;Consuming the Company Events Service .................................. 679&lt;br /&gt;Summary ......................................................................................... 681&lt;br /&gt;A. HTML Control Reference ................................................................... 683&lt;br /&gt;HtmlAnchor Control ........................................................................ 683&lt;br /&gt;HtmlButton Control ........................................................................ 684&lt;br /&gt;HtmlForm Control ........................................................................... 685&lt;br /&gt;HtmlGeneric Control ....................................................................... 685&lt;br /&gt;HtmlImage Control .......................................................................... 686&lt;br /&gt;ix Order the print version of this book to get all 700+ pages!&lt;br /&gt;HtmlInputButton Control ................................................................ 687&lt;br /&gt;HtmlInputCheckBox Control ........................................................... 688&lt;br /&gt;HtmlInputFile Control ..................................................................... 688&lt;br /&gt;HtmlInputHidden Control ............................................................... 689&lt;br /&gt;HtmlInputImage Control ................................................................. 690&lt;br /&gt;HtmlInputRadioButton Control ....................................................... 691&lt;br /&gt;HtmlInputText Control ................................................................... 692&lt;br /&gt;HtmlSelect Control .......................................................................... 693&lt;br /&gt;HtmlTable Control .......................................................................... 694&lt;br /&gt;HtmlTableCell Control .................................................................... 695&lt;br /&gt;HtmlTableRow Control .................................................................... 696&lt;br /&gt;HtmlTextArea Control ..................................................................... 697&lt;br /&gt;B. Web Control Reference ...................................................................... 699&lt;br /&gt;AdRotator Control ........................................................................... 701&lt;br /&gt;Button Control ................................................................................ 701&lt;br /&gt;Calendar Control ............................................................................. 702&lt;br /&gt;CheckBox Control ............................................................................ 704&lt;br /&gt;CheckBoxList Control ...................................................................... 704&lt;br /&gt;DropDownList Control .................................................................... 705&lt;br /&gt;HyperLink Control .......................................................................... 706&lt;br /&gt;Image Control .................................................................................. 707&lt;br /&gt;ImageButton Control ....................................................................... 707&lt;br /&gt;Label Control ................................................................................... 708&lt;br /&gt;LinkButton Control ......................................................................... 708&lt;br /&gt;ListBox Control ............................................................................... 709&lt;br /&gt;Literal Control ................................................................................. 710&lt;br /&gt;Panel Control ................................................................................... 710&lt;br /&gt;PlaceHolder Control ........................................................................ 710&lt;br /&gt;RadioButton Control ....................................................................... 710&lt;br /&gt;RadioButtonList Control .................................................................. 711&lt;br /&gt;TextBox Control .............................................................................. 712&lt;br /&gt;Xml Control ..................................................................................... 713&lt;br /&gt;C. Validation Control Reference ............................................................. 715&lt;br /&gt;The RequiredFieldValidator Control ................................................. 715&lt;br /&gt;The CompareValidator Control ........................................................ 716&lt;br /&gt;The RangeValidator Control ............................................................ 717&lt;br /&gt;The ValidationSummary Control ..................................................... 718&lt;br /&gt;The RegularExpressionValidator Control .......................................... 719&lt;br /&gt;The CustomValidator Control .......................................................... 719&lt;br /&gt;Index ....................................................................................................... 721&lt;br /&gt;Order the print version of this book to get all 700+ pages! x&lt;br /&gt;Build Your Own ASP.NET Website Using C# &amp; VB.NET&lt;br /&gt;Preface&lt;br /&gt;Here I am, seven years after the inception of ASP, still using a technology that I&lt;br /&gt;initially only glanced over as I searched for a server-side alternative to ColdFusion.&lt;br /&gt;It was 1997, a big year for me. I graduated college, landed a job as a creative&lt;br /&gt;director, and decided it was time to build on my experience with HTML and&lt;br /&gt;JavaScript. I didn’t consider myself a programmer—my true passions lay in&lt;br /&gt;design—but within months of starting my new job, I was developing the firm’s&lt;br /&gt;Website, Intranet, and company portal. The dynamic portions of these projects&lt;br /&gt;were developed using CGI written in Perl. As you might expect, I was lost! After&lt;br /&gt;looking around, I decided ColdFusion was my best bet—the language seemed to&lt;br /&gt;parallel closely the constructs of HTML, and I found it easy to pick up. However,&lt;br /&gt;I soon discovered that ColdFusion’s limitations in terms of accessing a server’s&lt;br /&gt;file system, and error handling, posed problems.&lt;br /&gt;ASP and VBScript seemed like the best alternative. I’d taken basic programming&lt;br /&gt;classes in college, and I guess they helped, because these two technologies came&lt;br /&gt;easily to me. Shortly thereafter, I went back to school and got into Visual Basic,&lt;br /&gt;COM, DCOM, and more. A whole new world was opening up to me through&lt;br /&gt;simplicity offered by ASP.&lt;br /&gt;Seven years, and countless Windows, Web, and wireless applications later, I still&lt;br /&gt;swear by the next generation of a technology that I’ve always considered superior&lt;br /&gt;to the major alternatives. ASP.NET represents a new and efficient way of creating&lt;br /&gt;Web applications using the programming language with which you feel most&lt;br /&gt;comfortable. Though it can take some time to learn, ASP.NET is simple to use.&lt;br /&gt;Whether you want to create Web Forms complete with Web and validation&lt;br /&gt;controls, or you aim to build a feature-rich shopping cart using DataTables, all&lt;br /&gt;the tools you’ll need to get up and running are immediately available, easy to&lt;br /&gt;install, and require very little initial configuration.&lt;br /&gt;My guess is that if you’re reading this book, you’re in the same boat I was: a&lt;br /&gt;longtime designer dabbling with HTML. Or maybe you’re an advanced HTML&lt;br /&gt;and JavaScript developer looking to take the next step. Perhaps you’re a seasoned&lt;br /&gt;PHP, JSP, or ColdFusion veteran who wants to know what all the fuss is about.&lt;br /&gt;Whatever the case, I’m sure you’ll find this book helpful in showing you how&lt;br /&gt;simple and feature-rich ASP.NET really is.&lt;br /&gt;Who Should Read This Book?&lt;br /&gt;This book is aimed at beginner, intermediate, and advanced Web designers&lt;br /&gt;looking to make the leap into server-side programming with ASP.NET. You’ll be&lt;br /&gt;expected to feel comfortable with HTML, as very little explanation is provided&lt;br /&gt;here.&lt;br /&gt;By the end of this book, you should have a firm grasp on what it takes to download&lt;br /&gt;and install ASP.NET and the .NET Framework, configure and start your&lt;br /&gt;Web server, create and work with basic ASP.NET pages, install and run either&lt;br /&gt;Access or MSDE, create database tables, work with advanced, dynamic ASP.NET&lt;br /&gt;pages that query, insert, update, and delete information within a database.&lt;br /&gt;All examples provided in the book are written in both Visual Basic .NET and&lt;br /&gt;C#, the two most popular languages for writing ASP.NET Websites. They start&lt;br /&gt;at beginners’ level and work up. As such, no prior knowledge of the two languages&lt;br /&gt;is required in order to read, learn from, and apply the knowledge provided in this&lt;br /&gt;book. Experience with other programming or scripting languages (such as JavaScript)&lt;br /&gt;will certainly grease the wheels, however, and will enable you to grasp the&lt;br /&gt;fundamental programming concepts more quickly.&lt;br /&gt;What’s Covered In This Book?&lt;br /&gt;This book is comprised of the following seventeen chapters. Read them from&lt;br /&gt;beginning to end to gain a complete understanding of the subject, or skip around&lt;br /&gt;if you feel you need a refresher on a particular topic.&lt;br /&gt;Chapter 1: Introduction to .NET and ASP.NET&lt;br /&gt;Before you can start building your database-driven Web presence, you must&lt;br /&gt;ensure you have the right tools for the job. In this first chapter, I’ll tell you&lt;br /&gt;how to find, download, and configure the .NET Framework. I’ll explain where&lt;br /&gt;the Web server is located and how to install and configure it. Next, we’ll walk&lt;br /&gt;through the installation of two Microsoft database solutions: Access and&lt;br /&gt;MSDE. Finally, we’ll create a simple ASP.NET page to make sure that&lt;br /&gt;everything’s running and properly configured.&lt;br /&gt;Chapter 2: ASP.NET Basics&lt;br /&gt;In this chapter, you’ll create your first useful ASP.NET page. We’ll cover all&lt;br /&gt;of the parts that make up a typical ASP.NET page, including directives,&lt;br /&gt;controls, and code. We’ll then walk through the process of deployment, fo-&lt;br /&gt;Order the print version of this book to get all 700+ pages! xii&lt;br /&gt;Preface&lt;br /&gt;cusing specifically on allowing the user to view the processing of a simple&lt;br /&gt;ASP.NET page through the Web browser.&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt;In this chapter, we’ll look at two of the programming languages used to create&lt;br /&gt;ASP.NET pages: VB.NET and C#. You’ll learn about the syntax of the two&lt;br /&gt;languages as we explore the concepts of variables, data types, conditionals,&lt;br /&gt;loops, arrays, functions, and more. Finally, we’ll see how the two languages&lt;br /&gt;accommodate Object Oriented Programming principles by allowing you to&lt;br /&gt;work with classes, methods, properties, inheritance, and more.&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;ASP.NET is bundled with hundreds of controls that you can use within your&lt;br /&gt;applications, including HTML controls, Web controls, and more. This chapter&lt;br /&gt;will introduce you to the wonderful world of Web controls and how Microsoft&lt;br /&gt;basically reinvented HTML forms.&lt;br /&gt;Chapter 5: Validation Controls&lt;br /&gt;This chapter introduces validation controls. With validation controls, Microsoft&lt;br /&gt;basically eliminated the heartache of fumbling through and configuring&lt;br /&gt;tired, reused client-side validation scripts.&lt;br /&gt;Chapter 6: Database Design and Development&lt;br /&gt;Undoubtedly one of the most important chapters in the book, Chapter 6 will&lt;br /&gt;help you prepare to work with databases in ASP.NET. We’ll cover the essentials&lt;br /&gt;you’ll need in order to create a database using either Access or MSDE.&lt;br /&gt;In this chapter, we’ll begin to build the database for our project.&lt;br /&gt;Chapter 7: Structured Query Language&lt;br /&gt;This chapter introduces the language we’ll use to facilitate communications&lt;br /&gt;between the database and the Web application: Structured Query Language,&lt;br /&gt;or SQL. After a gentle introduction to the basic concepts of SQL, we’ll move&lt;br /&gt;on to more advanced topics such as expressions, conditions, and joins.&lt;br /&gt;Chapter 8: ADO.NET&lt;br /&gt;The next logical step in database driven Web applications involves ADO.NET.&lt;br /&gt;This chapter explores the essentials of the technology, and will have you&lt;br /&gt;reading data in a database directly from your Web applications in just a few&lt;br /&gt;short steps. We’ll then help you begin the transition from working with&lt;br /&gt;static applications to database-driven ones.&lt;br /&gt;xiii Order the print version of this book to get all 700+ pages!&lt;br /&gt;What’s Covered In This Book?&lt;br /&gt;Chapter 9: The DataGrid and DataList Controls&lt;br /&gt;Taking ADO.NET further, this chapter shows you how to utilize the DataGrid&lt;br /&gt;and DataList controls provided within the .NET Framework. DataGrid and&lt;br /&gt;DataList play a crucial role in the simplicity of presenting information with&lt;br /&gt;ASP.NET. In learning how to present database data within your applications&lt;br /&gt;in a cleaner and more legible format, you’ll gain an understanding of the&lt;br /&gt;concept of data binding at a much higher level.&lt;br /&gt;Chapter 10: DataSets&lt;br /&gt;One of the most challenging concepts to grasp when transitioning from ASP&lt;br /&gt;to ASP.NET is that of disconnected data. In this chapter, you’ll learn how&lt;br /&gt;to use DataSets to create virtual database tables within your Web applications.&lt;br /&gt;You’ll also learn how to work with DataTables, and how to filter and sort&lt;br /&gt;information within DataSets and DataTables using DataViews.&lt;br /&gt;Chapter 11: Web Applications&lt;br /&gt;Chapter 11 explores the features of a Web application. We’ll discuss the&lt;br /&gt;many parts of the Web.config file in depth, and understand how to work&lt;br /&gt;with the Global.asax file, application state, and session state. Finally, we’ll&lt;br /&gt;look at the ways in which caching can improve the performance of your Web&lt;br /&gt;applications.&lt;br /&gt;Chapter 12: Building an ASP.NET Shopping Cart&lt;br /&gt;In this chapter, we’ll create an ASP.NET shopping cart. Using the topics&lt;br /&gt;we’ve explored in previous chapters, including DataTables and session state,&lt;br /&gt;we’ll walk through the process of building a purely memory-resident shopping&lt;br /&gt;cart for our project.&lt;br /&gt;Chapter 13: Error Handling&lt;br /&gt;Learning to handle gracefully unforeseen errors within your Web applications&lt;br /&gt;is the topic of this chapter. Initially, we’ll discuss basic page and code techniques&lt;br /&gt;you can use to handle errors. We’ll then talk about the debugger that’s&lt;br /&gt;included with the .NET Framework SDK and understand how to leverage it&lt;br /&gt;by setting breakpoints, reading the autos and locals window, and setting&lt;br /&gt;watches. Finally, we’ll discuss how you can take advantage of the Event&lt;br /&gt;Viewer to write errors as they occur within your applications.&lt;br /&gt;Chapter 14: Security and User Authentication&lt;br /&gt;This chapter will introduce you to securing your Web applications with&lt;br /&gt;ASP.NET. Here, we’ll discuss the various security models available, including&lt;br /&gt;IIS, Forms, Windows, and Passport, and discusses the roles the Web.config&lt;br /&gt;and XML files can play.&lt;br /&gt;Order the print version of this book to get all 700+ pages! xiv&lt;br /&gt;Preface&lt;br /&gt;Chapter 15: Working with Files and Email&lt;br /&gt;In this chapter, we’ll look at accessing your server’s file system, including&lt;br /&gt;drives, files, and the network. The chapter will then show you how to work&lt;br /&gt;with file streams to create text files, write to text files, and read from text&lt;br /&gt;files on your Web server. Finally, you’ll learn how to send emails using&lt;br /&gt;ASP.NET.&lt;br /&gt;Chapter 16: Rich Controls and User Controls&lt;br /&gt;Chapter 16 explores ASP.NET’s rich controls. You’ll learn how to create an&lt;br /&gt;interactive meeting scheduler using the Calendar control, sessions, and serialization.&lt;br /&gt;You’ll also learn how to format XML with XSLT utilizing the Xml&lt;br /&gt;control. Lastly, we’ll look at randomizing banner advertisements on your site&lt;br /&gt;using the AdRotator control.&lt;br /&gt;Chapter 17: XML Web Services&lt;br /&gt;The newest buzzword in the development community is “Web Services,”&lt;br /&gt;and this chapter hopes to shed some light on the topic. We first define Web&lt;br /&gt;Services before moving on to explain how they’re used, where they can be&lt;br /&gt;found, and what WSDL and UDDI are. In this chapter, you’ll create a couple&lt;br /&gt;of different Web Services from scratch, including one that queries your&lt;br /&gt;database to present information within a Web application. You’ll also learn&lt;br /&gt;how to build a search application using the Google Search Web Service.&lt;br /&gt;The Book’s Website&lt;br /&gt;Located at http://www.sitepoint.com/books/aspnet1/, the Website that supports&lt;br /&gt;this book will give you access to the following facilities:&lt;br /&gt;The Code Archive&lt;br /&gt;As you progress through this book, you’ll note a number of references to the code&lt;br /&gt;archive. This is a downloadable ZIP archive that contains complete code for all&lt;br /&gt;the examples presented in the book.&lt;br /&gt;The archive contains one folder for each chapter of the book. Each of these folders&lt;br /&gt;in turn contains CS and VB subfolders, which contain the C# and VB.NET versions&lt;br /&gt;of all the examples for that chapter, respectively. In later chapters, these files are&lt;br /&gt;further divided into two more subfolders: Lessons for standalone examples&lt;br /&gt;presented for a single chapter, and Project for files associated with the&lt;br /&gt;Dorknozzle Intranet Application, a larger-scale project that we’ll work on&lt;br /&gt;throughout the book, which I’ll introduce in Chapter 4.&lt;br /&gt;xv Order the print version of this book to get all 700+ pages!&lt;br /&gt;The Book’s Website&lt;br /&gt;Updates and Errata&lt;br /&gt;No book is perfect, and we expect that watchful readers will be able to spot at&lt;br /&gt;least one or two mistakes before the end of this one. The Errata page on the&lt;br /&gt;book’s Website will always have the latest information about known typographical&lt;br /&gt;and code errors, and necessary updates for new releases of ASP.NET and the&lt;br /&gt;various Web standards that apply.&lt;br /&gt;The SitePoint Forums&lt;br /&gt;If you’d like to communicate with me or anyone else on the SitePoint publishing&lt;br /&gt;team about this book, you should join SitePoint’s online community[2]. The&lt;br /&gt;.NET forum[3] in particular can offer an abundance of information above and&lt;br /&gt;beyond the solutions in this book.&lt;br /&gt;In fact, you should join that community even if you don’t want to talk to us, because&lt;br /&gt;there are a lot of fun and experienced Web designers and developers hanging&lt;br /&gt;out there. It’s a good way to learn new stuff, get questions answered in a hurry,&lt;br /&gt;and just have fun.&lt;br /&gt;The SitePoint Newsletters&lt;br /&gt;In addition to books like this one, SitePoint publishes free email newsletters including&lt;br /&gt;The SitePoint Tribune and The SitePoint Tech Times. In them, you’ll read&lt;br /&gt;about the latest news, product releases, trends, tips, and techniques for all aspects&lt;br /&gt;of Web development. If nothing else, you’ll get useful ASP.NET articles and tips,&lt;br /&gt;but if you’re interested in learning other technologies, you’ll find them especially&lt;br /&gt;valuable. Sign up to one or more SitePoint newsletters at&lt;br /&gt;http://www.sitepoint.com/newsletter/.&lt;br /&gt;Your Feedback&lt;br /&gt;If you can’t find your answer through the forums, or if you wish to contact us&lt;br /&gt;for any other reason, the best place to write is &lt;books@sitepoint.com&gt;. We have&lt;br /&gt;a well-manned email support system set up to track your inquiries, and if our&lt;br /&gt;support staff members are unable to answer your question, they will send it&lt;br /&gt;[2] http://www.sitepoint.com/forums/&lt;br /&gt;[3] http://www.sitepoint.com/forums/forumdisplay.php?f=141&lt;br /&gt;Order the print version of this book to get all 700+ pages! xvi&lt;br /&gt;Preface&lt;br /&gt;straight to me. Suggestions for improvements as well as notices of any mistakes&lt;br /&gt;you may find are especially welcome.&lt;br /&gt;Acknowledgements&lt;br /&gt;First and foremost, I’d like to thank the SitePoint team for doing such a great&lt;br /&gt;job in making this book possible, for being understanding as deadlines inevitably&lt;br /&gt;slipped past, and for the team’s personal touch, which made it a pleasure to work&lt;br /&gt;on this project.&lt;br /&gt;Particular thanks go to Simon Mackie, whose valuable insight and close cooperation&lt;br /&gt;throughout the process has tied up many loose ends and helped make this&lt;br /&gt;book both readable and accessible. Thanks again Simon for allowing me to write&lt;br /&gt;this book—I appreciate the patience and dedication that you’ve shown.&lt;br /&gt;Finally, returning home, I’d like to thank my wife Jessica, whose patience, love&lt;br /&gt;and understanding throughout continue to amaze me.&lt;br /&gt;xvii Order the print version of this book to get all 700+ pages!&lt;br /&gt;Acknowledgements&lt;br /&gt;xviii&lt;br /&gt;Introduction to .NET and&lt;br /&gt;ASP.NET 1&lt;br /&gt;It’s being touted as the “next big thing.” Microsoft has invested millions in marketing,&lt;br /&gt;advertising, and development to produce what it feels is the foundation&lt;br /&gt;of the future Internet. It’s a corporate initiative, the strategy of which was deemed&lt;br /&gt;so important, that Bill Gates himself, Microsoft Chairman and CEO, decided to&lt;br /&gt;oversee personally its development. It is a technology that Microsoft claims will&lt;br /&gt;reinvent the way companies carry out business globally for years to come. In his&lt;br /&gt;opening speech at the Professional Developers’ Conference (PDC) held in Orlando&lt;br /&gt;Florida in July of 2000, Gates stated that a transition of this magnitude only&lt;br /&gt;comes around once every five to six years. What is this show-stopping technology?&lt;br /&gt;It’s .NET.&lt;br /&gt;What is .NET?&lt;br /&gt;.NET is the result of a complete make-over of Microsoft’s software development&lt;br /&gt;products, and forms part of the company’s new strategy for delivering software&lt;br /&gt;as a service. The key features that .NET offers include:&lt;br /&gt; .NET Platform: The .NET platform includes the .NET Framework and tools&lt;br /&gt;to build and operate services, clients, and so on. ASP.NET, the focus of this&lt;br /&gt;book, is a part of the .NET Framework.&lt;br /&gt; .NET Products: .NET products currently include MSN.NET, Office.NET,&lt;br /&gt;Visual Studio.NET, and Windows Server 2003, originally known as Windows&lt;br /&gt;.NET Server. This suite of extensively revised systems provides developers&lt;br /&gt;with a friendly, usable environment in which they may create applications&lt;br /&gt;with a range of programming languages including C++. NET, Visual Basic.&lt;br /&gt;NET, ASP.NET, and C#. Because all these products are built on top of&lt;br /&gt;.NET, they all share key components, and underneath their basic syntaxes&lt;br /&gt;you’ll find they have much in common.&lt;br /&gt; .NET My Services: An initiative formerly known as "Hailstorm", .NET My&lt;br /&gt;Services is a set of XML Web Services1 currently being provided by a host of&lt;br /&gt;partners, developers, and organizations that are hoping to build corporate&lt;br /&gt;services and applications for devices and applications, as well as the Internet.&lt;br /&gt;The collection of My Services currently extends to passport, messenger, contacts,&lt;br /&gt;email, calendars, profiles, lists, wallets, location, document stores, application&lt;br /&gt;settings, favorite Websites, devices owned, and preferences for receiving&lt;br /&gt;alerts.&lt;br /&gt;The book focuses on one of the core components within the .NET Framework:&lt;br /&gt;ASP.NET.&lt;br /&gt;What is ASP.NET?&lt;br /&gt;For years now, Active Server Pages (ASP) has been arguably the leading choice&lt;br /&gt;for Web developers building dynamic Websites on Windows Web servers. ASP&lt;br /&gt;has gained popularity by offering the simplicity of flexible scripting via several&lt;br /&gt;languages. That, combined with the fact that it’s built into every Microsoft&lt;br /&gt;Windows-based Web server, has made ASP a difficult act to follow.&lt;br /&gt;Early in 2002, Microsoft released its new technology for Internet development.&lt;br /&gt;Originally called ASP+, it was finally released as ASP.NET, and represents a leap&lt;br /&gt;forward from ASP both in sophistication and productivity for the developer. It&lt;br /&gt;continues to offer flexibility in terms of the languages it supports, but instead of&lt;br /&gt;a range of simple scripting languages, developers can now choose between several&lt;br /&gt;fully-fledged programming languages. Development in ASP.NET requires not&lt;br /&gt;only an understanding of HTML and Web design, but also a firm grasp of the&lt;br /&gt;concepts of object-oriented programming and development.&lt;br /&gt;In the next few sections, I’ll introduce you to the basics of ASP.NET. I’ll walk&lt;br /&gt;you through installing it on your Web server, and take you through a simple&lt;br /&gt;1Don’t worry if you don’t yet know what a Web Service is. I’ll explain all about them in Chapter 17.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 2&lt;br /&gt;Chapter 1: Introduction to .NET and ASP.NET&lt;br /&gt;dynamic example that demonstrates how ASP.NET pages are constructed. First,&lt;br /&gt;let’s define what ASP.NET actually is.&lt;br /&gt;ASP.NET is a server-side technology for developing Web applications based&lt;br /&gt;on the Microsoft .NET Framework. Let’s break that jargon-filled sentence&lt;br /&gt;down.&lt;br /&gt;ASP.NET is server-side; that is, it runs on the Web server. Most Web designers&lt;br /&gt;start by learning client-side technologies like HTML, JavaScript, and Cascading&lt;br /&gt;Style Sheets (CSS). When a Web browser requests a Web page created with clientside&lt;br /&gt;technologies, the Web server simply grabs the files that the browser (the&lt;br /&gt;client) requests and sends them down the line. The client is entirely responsible&lt;br /&gt;for reading the code in the files and interpreting it to display the page on the&lt;br /&gt;screen. Server-side technologies, like ASP.NET, are different. Instead of being&lt;br /&gt;interpreted by the client, server-side code (for example, the code in an ASP.NET&lt;br /&gt;page) is interpreted by the Web server. In the case of ASP.NET, the code in the&lt;br /&gt;page is read by the server and used dynamically to generate standard&lt;br /&gt;HTML/JavaScript/CSS that is then sent to the browser. As all processing of&lt;br /&gt;ASP.NET code occurs on the server, it’s called a server-side technology. As Figure&lt;br /&gt;1.1 shows, the user (client) only sees the HTML, JavaScript, and CSS within&lt;br /&gt;the browser. The server (and server-side technology) is entirely responsible for&lt;br /&gt;processing the dynamic portions of the page.&lt;br /&gt;Figure 1.1. The Web server is responsible for processing the&lt;br /&gt;server-side code and presenting the output to the user (client).&lt;br /&gt;ASP.NET is a technology for developing Web applications. A Web application&lt;br /&gt;is just a fancy name for a dynamic Website. Web applications usually (but not&lt;br /&gt;always) store information in a database on the Web server, and allow visitors to&lt;br /&gt;3 Order the print version of this book to get all 700+ pages!&lt;br /&gt;What is ASP.NET?&lt;br /&gt;the site to access and change that information. Many different programming&lt;br /&gt;technologies and supported languages have been developed to create Web applications;&lt;br /&gt;PHP, JSP (using Java), CGI (using Perl), and ColdFusion (using CFML)&lt;br /&gt;are just a few of the more popular ones. Rather than tying you to a specific&lt;br /&gt;technology and language, however, ASP.NET lets you write Web applications&lt;br /&gt;using a variety of familiar programming languages.&lt;br /&gt;Finally, ASP.NET is based on the Microsoft .NET Framework. The .NET&lt;br /&gt;Framework collects all the technologies needed for building Windows applications,&lt;br /&gt;Web applications, and Web Services into a single package with a set of more&lt;br /&gt;than twenty programming languages. To develop Websites with ASP.NET, you’ll&lt;br /&gt;need to download the .NET Framework Software Development Kit, which I’ll&lt;br /&gt;guide you through in the next few sections.&lt;br /&gt;Even with all the jargon demystified, you’re probably still wondering: what makes&lt;br /&gt;ASP.NET so good? Compared with other options for building Web applications,&lt;br /&gt;ASP.NET has the following advantages:&lt;br /&gt; ASP.NET lets you use your favorite programming language, or at least one&lt;br /&gt;that’s really close to it. The .NET Framework currently supports over twenty&lt;br /&gt;languages, four of which may be used to build ASP.NET Websites.&lt;br /&gt; ASP.NET pages are compiled, not interpreted. Instead of reading and interpreting&lt;br /&gt;your code every time a dynamic page is requested, ASP.NET compiles&lt;br /&gt;dynamic pages into efficient binary files that the server can execute very&lt;br /&gt;quickly. This represents a big jump in performance when compared with the&lt;br /&gt;technology’s interpreted predecessor, ASP.&lt;br /&gt; ASP.NET has full access to the functionality of the .NET Framework. Support&lt;br /&gt;for XML, Web Services, database interaction, email, regular expressions, and&lt;br /&gt;many other technologies are built right into .NET, which saves you from&lt;br /&gt;having to reinvent the wheel.&lt;br /&gt; ASP.NET allows you to separate the server-side code in your pages from the&lt;br /&gt;HTML layout. When you’re working with a team composed of programmers&lt;br /&gt;and design specialists, this separation is a great help, as it lets programmers&lt;br /&gt;modify the server-side code without stepping on the designers’ carefully crafted&lt;br /&gt;HTML—and vice versa.&lt;br /&gt;With all these advantages, ASP.NET has relatively few downsides. In fact, only&lt;br /&gt;two come to mind:&lt;br /&gt;Order the print version of this book to get all 700+ pages! 4&lt;br /&gt;Chapter 1: Introduction to .NET and ASP.NET&lt;br /&gt; ASP.NET is a Microsoft technology. While this isn’t a problem in itself, it&lt;br /&gt;does mean that, at least for now, you need to use a Windows server to run&lt;br /&gt;an ASP.NET Website. If your organization uses Linux or some other operating&lt;br /&gt;system for its Web servers, you’re out of luck.&lt;br /&gt; Serious ASP.NET development requires an understanding of object-oriented&lt;br /&gt;programming, which we’ll cover over the next few chapters.&lt;br /&gt;Still with me? Great! It’s time to gather the tools and start building!&lt;br /&gt;What Do I Need?&lt;br /&gt;For the moment, if you’re going to learn ASP.NET, you’ll need a Windows-based&lt;br /&gt;Web server. Open source initiatives are underway to produce versions of ASP.NET&lt;br /&gt;that will run on other operating systems, such as Linux; however, these are not&lt;br /&gt;expected to be available in stable form for a while.&lt;br /&gt;While developers had the option of getting their feet wet with ASP on Windows&lt;br /&gt;95, 98, or ME, using a scaled-down version of IIS called a Personal Web Server&lt;br /&gt;(PWS), ASP.NET requires the real deal. As a bare minimum, you’ll need a computer&lt;br /&gt;equipped with Windows 2000 Professional before you can get started.&lt;br /&gt;Windows XP Professional will work fine too, as will any of the Windows 2000&lt;br /&gt;Server packages and Windows 2003 Server.&lt;br /&gt;Other than that, all you need is enough disk space to install the Web server Internet&lt;br /&gt;Information Services (18 MB), the .NET Framework SDK (which includes&lt;br /&gt;ASP.NET; 108 MB), and a text editor. Notepad or Web Matrix[1] will&lt;br /&gt;be fine for getting started, and are certainly all you’ll need for this book. However,&lt;br /&gt;if you get serious about ASP.NET, you’ll probably want to invest in a development&lt;br /&gt;environment like Visual Studio .NET[2].&lt;br /&gt;Installing the Required Software&lt;br /&gt;This section tackles the necessary installation and configuration of software that&lt;br /&gt;you’ll need for this book, including:&lt;br /&gt; Internet Information Services (IIS): IIS is the Web server we will use. You’ll&lt;br /&gt;need your copy of the Windows CD for the installation and configuration.&lt;br /&gt;[1] http://www.asp.net/webmatrix/&lt;br /&gt;[2] http://msdn.microsoft.com/vstudio/&lt;br /&gt;5 Order the print version of this book to get all 700+ pages!&lt;br /&gt;What Do I Need?&lt;br /&gt; A Modern Web Browser: You can use any modern, standards-compliant&lt;br /&gt;browser to test your work. Throughout this book, we’ll be using Internet Explorer&lt;br /&gt;6.&lt;br /&gt; The .NET Framework Redistributable: As you’ve already learned in this&lt;br /&gt;chapter, the .NET Framework is what drives ASP.NET. Installing the .NET&lt;br /&gt;Framework installs the necessary files to run ASP.NET.&lt;br /&gt; The .NET Framework SDK: The .NET Framework Software Development&lt;br /&gt;Kit (SDK) contains necessary Web application development tools, a debugger&lt;br /&gt;for error correcting, a development database engine in MSDE, and a suite of&lt;br /&gt;samples and documentation.&lt;br /&gt;We’re also going to need a database. In this book, we’ll use:&lt;br /&gt; Microsoft Access: Access is a cheap and easy-to-use alternative to its more&lt;br /&gt;robust big brother, SQL Server, and can be purchased separately, or installed&lt;br /&gt;from a Microsoft Office CD.&lt;br /&gt;Or alternatively, you might use:&lt;br /&gt; Microsoft SQL Server Desktop Engine (MSDE): SQL Server is the enterprise&lt;br /&gt;alternative to smaller databases such as Access. If you’re working within&lt;br /&gt;a corporation where your company’s data is its lifeblood, then SQL Server is&lt;br /&gt;the perfect choice. MSDE is a free, cut down version of SQL Server that you&lt;br /&gt;can use for development purposes.&lt;br /&gt; Web Data Administrator: If you’re going to use MSDE, then you’ll need a&lt;br /&gt;tool for modifying the data within the database. Web Data Administrator is&lt;br /&gt;Microsoft’s free Web-based database management tool.&lt;br /&gt;Installing Internet Information Services (IIS)&lt;br /&gt;Do you need to install IIS locally even if the final site will not be hosted locally?&lt;br /&gt;The answer is: yes. Even if you’re uploading your Web applications via FTP to&lt;br /&gt;your Web host, installing IIS allows you to view, debug, and configure your applications&lt;br /&gt;locally before deployment.&lt;br /&gt;IIS comes with most versions of server-capable Windows operating systems, including&lt;br /&gt;Windows 2000 Professional, Server, and Advanced Server, Windows XP&lt;br /&gt;Professional, and Windows Server 2003, but it’s not installed automatically in&lt;br /&gt;all versions, which is why it may not be present on your computer. To see&lt;br /&gt;Order the print version of this book to get all 700+ pages! 6&lt;br /&gt;Chapter 1: Introduction to .NET and ASP.NET&lt;br /&gt;whether you have IIS installed and running, simply navigate to your Administrative&lt;br /&gt;Tools menu and check to see if Internet Information Services is an option. Users&lt;br /&gt;of Windows 2000 Professional will find the Administrative Tools in their Control&lt;br /&gt;Panels, while XP and Server family users also have shortcuts in their start menus.&lt;br /&gt;If the shortcut is not visible, then you don’t have it installed. To install IIS, simply&lt;br /&gt;follow these steps:&lt;br /&gt;1. In the Control Panel, select Add or Remove Programs.&lt;br /&gt;2. Choose Add/Remove Windows Components. The list of components will become&lt;br /&gt;visible within a few seconds.&lt;br /&gt;3. In the list of components, check Internet Information Services (IIS).&lt;br /&gt;4. Click Next. Windows prompts you to insert the Windows CD and installs&lt;br /&gt;IIS.&lt;br /&gt;Once IIS is installed, close the Add or Remove Programs dialog. You can check&lt;br /&gt;that IIS has installed correctly by seeing if you can find it within the Administrative&lt;br /&gt;Tools menu. If you can, it’s installed.&lt;br /&gt;You are now ready to begin hosting Web applications. Although we won’t cover&lt;br /&gt;the configuration of IIS for external use, I will show you how to configure IIS to&lt;br /&gt;support local development of ASP.NET applications in order that they may be&lt;br /&gt;uploaded to your external Web hosting provider later.&lt;br /&gt;Installing Internet Explorer&lt;br /&gt;As a Windows user, you have Internet Explorer installed by default, but I recommend&lt;br /&gt;you run at least version 5.5. You can check your version by selecting About&lt;br /&gt;Internet Explorer from the Help menu.&lt;br /&gt;If your version of Internet Explorer is earlier than 5.5, you can download the&lt;br /&gt;latest version (version 6 SP1 as of this writing) for free from the Internet Explorer&lt;br /&gt;Website[3]. Remember, although ASP.NET will work with older versions of IE,&lt;br /&gt;certain ASP.NET functionality works best with the latest version.&lt;br /&gt;The Internet Explorer Website does not allow you to install a version of your&lt;br /&gt;choice; it permits you to download only the most recent version that’s available.&lt;br /&gt;[3] http://www.microsoft.com/windows/ie/&lt;br /&gt;7 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Installing Internet Explorer&lt;br /&gt;Because the newest versions of Internet Explorer will include the latest patches,&lt;br /&gt;it’s a good idea to stick with what they give you.&lt;br /&gt;Installing the .NET Framework and SDK&lt;br /&gt;To begin creating ASP.NET applications, you’ll need to install the .NET Framework&lt;br /&gt;and SDK. The .NET Framework includes the necessary files to run and&lt;br /&gt;view ASP.NET pages, while the .NET Framework SDK includes samples, documentation,&lt;br /&gt;and a variety of free tools.&lt;br /&gt;The .NET Framework SDK also provides you with the ability to install MSDE,&lt;br /&gt;the free database server that you can use with this book. Once the .NET Framework&lt;br /&gt;and SDK are installed, little else needs to be done for you to begin working&lt;br /&gt;with ASP.NET. The .NET Framework is installed as part of the operating system&lt;br /&gt;if you’re lucky enough to be running Windows .NET Server 2003, in which case&lt;br /&gt;you can skip directly to installing the SDK. If not, you will need to download&lt;br /&gt;the .NET redistributable package, which is approximately 21 MB, and includes&lt;br /&gt;the files necessary for running ASP.NET applications.&lt;br /&gt;To develop .NET applications, you also need to install the software development&lt;br /&gt;kit, which includes necessary tools along with samples and documentation. Be&lt;br /&gt;aware that the .NET Framework SDK is 108 MB in size—be prepared to wait!&lt;br /&gt;Installing the .NET Framework before you install IIS will prevent your applications&lt;br /&gt;from working correctly.&lt;br /&gt;Download and Install the Redistributable&lt;br /&gt;The best method of acquiring the .NET Framework is to download and install it&lt;br /&gt;directly from the Web. To accomplish this, simply follow the steps outlined below:&lt;br /&gt;1. Go to the ASP.NET support site at http://www.asp.net/ and click the Download&lt;br /&gt;link.&lt;br /&gt;2. Click the Download .NET Framework Redist Now link. Remember, we will install&lt;br /&gt;the redistributable first, then we will install the SDK. The link will advance&lt;br /&gt;you to a download page.&lt;br /&gt;3. Choose the language version of the install you want, and click Download.&lt;br /&gt;4. When prompted, save the file to a local directory by choosing Save.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 8&lt;br /&gt;Chapter 1: Introduction to .NET and ASP.NET&lt;br /&gt;5. After the download is complete, double-click the executable to begin the installation.&lt;br /&gt;6. Follow the steps presented by the .NET Setup Wizard until installation&lt;br /&gt;completes.&lt;br /&gt;Download and Install the SDK&lt;br /&gt;Now that you’ve installed the redistributable, you need to install the software&lt;br /&gt;development kit (SDK):&lt;br /&gt;1. Go to the ASP.NET support site at http://www.asp.net/ and click the Download&lt;br /&gt;link.&lt;br /&gt;2. Click the Download .NET Framework SDK Now link. The link will advance&lt;br /&gt;you to a download page.&lt;br /&gt;3. Choose the language version of the install you want to use and click Download,&lt;br /&gt;as you did to download the redistributable.&lt;br /&gt;4. When prompted to do so, save the file to a local directory by choosing Save.&lt;br /&gt;5. After the download is complete, double-click the executable to begin the installation.&lt;br /&gt;Before you do, I strongly recommend closing all other programs&lt;br /&gt;to ensure the install proceeds smoothly.&lt;br /&gt;6. Follow the steps outlined by the .NET Setup Wizard until installation&lt;br /&gt;completes.&lt;br /&gt;The SDK will take slightly longer to install than the redistributable. Once it’s&lt;br /&gt;finished, check to see if it exists in your programs menu; navigate to Start &gt; Programs&lt;br /&gt;&gt; Microsoft .NET Framework SDK.&lt;br /&gt;Configuring IIS&lt;br /&gt;Although little configuration needs to be done before you begin working with&lt;br /&gt;IIS, I’ll use this section to introduce some basic features and functionality within&lt;br /&gt;IIS:&lt;br /&gt; Determining whether ASP.NET installed correctly&lt;br /&gt; Determining where files are located on the Web server&lt;br /&gt;9 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Download and Install the SDK&lt;br /&gt; Using localhost&lt;br /&gt; How to start and stop the Web server&lt;br /&gt; How to create a new virtual directory and modify its properties&lt;br /&gt;Determining whether ASP.NET Installed Correctly&lt;br /&gt;Once IIS is installed on your computer, you can open it by selecting Internet Information&lt;br /&gt;Services from the Administrative Tools menu. The first task is to make&lt;br /&gt;sure that ASP.NET was integrated into IIS when you installed the .NET Framework.&lt;br /&gt;Although, logically, ASP.NET should install automatically because it’s a&lt;br /&gt;component of the .NET Framework, sometimes it doesn’t. Don’t let this alarm&lt;br /&gt;you—it’s a common occurrence and is addressed in the Microsoft Knowledge&lt;br /&gt;Base. You can determine whether IIS was installed correctly by following these&lt;br /&gt;steps:&lt;br /&gt;1. Open IIS, if you haven’t already done so, and click on the + symbol next&lt;br /&gt;to your computer’s name.&lt;br /&gt;2. Right-click Default Web Site and select Properties.&lt;br /&gt;3. Navigate to the Documents tab. If default.aspx appears within the list,&lt;br /&gt;ASP.NET was installed correctly.&lt;br /&gt;Another way to check whether ASP.NET installed correctly is by following these&lt;br /&gt;steps:&lt;br /&gt;1. Navigate to the Application Mappings menu by right-clicking the root Website&lt;br /&gt;node (your computer’s name) and choosing Properties.&lt;br /&gt;2. Select the Home Directory tab, and choose Configuration.&lt;br /&gt;3. The Application Mappings menu displays all of the extensions and their associated&lt;br /&gt;ISAPI Extension DLLs, as we see in Figure 1.2.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 10&lt;br /&gt;Chapter 1: Introduction to .NET and ASP.NET&lt;br /&gt;Figure 1.2. If the .aspx ISAPI Extension DLL appears within the&lt;br /&gt;Application Mappings menu, then ASP.NET was installed correctly.&lt;br /&gt;Since I can imagine you’re dying to know what an ISAPI Extension DLL is, let&lt;br /&gt;me explain. You may know that a DLL is a Dynamically Linked Library, which&lt;br /&gt;is essentially a self-contained code module that any number of applications can&lt;br /&gt;draw on. When a Web server hosts a dynamic Website, page requests must be&lt;br /&gt;processed by program code running on the server before the resultant HTML&lt;br /&gt;can be sent back to the requesting browser (the client). Now, as was the case&lt;br /&gt;with traditional ASP, ASP.NET performs this processing with the help of its Internet&lt;br /&gt;Server Application Programming Interface (ISAPI) extension DLL.&lt;br /&gt;ISAPI allows Web requests to be processed through the Web server by a DLL,&lt;br /&gt;11 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Determining whether ASP.NET Installed Correctly&lt;br /&gt;rather than an EXE, as is the case with Common Gateway Interface (CGI)&lt;br /&gt;pages. This approach is advantageous because DLLs are much more efficient, and&lt;br /&gt;require far less resources and memory than executables. IIS uses the file extension&lt;br /&gt;of a requested page to determine which DLL should process the request according&lt;br /&gt;to the mappings shown in the screenshot above. So, we can see that pages ending&lt;br /&gt;in .aspx, .asmx, or .ascx, among others, will now be passed by IIS to the&lt;br /&gt;ASP.NET DLL (aspnet_isapi.dll) for processing. OK, enough of the tech-talk.&lt;br /&gt;Let’s get back to it!&lt;br /&gt;If you’ve come to the conclusion that ASP.NET was not installed on your computer,&lt;br /&gt;you’ll have to install it manually from the command prompt:&lt;br /&gt;1. Open the command prompt by selecting Start &gt; Run, type CMD, and select&lt;br /&gt;OK.&lt;br /&gt;2. Type the following command (all on one line) to install ASP.NET on Windows&lt;br /&gt;2000 Professional, Server, or Advanced Server:&lt;br /&gt;C:\WINNT\Microsoft.NET\Framework\ver\aspnet_regiis.exe -i&lt;br /&gt;Or on Windows XP Professional:&lt;br /&gt;C:\WINDOWS\Microsoft.NET\Framework\ver\aspnet_regiis.exe -i&lt;br /&gt;In these commands, ver is the directory corresponding to the version of the&lt;br /&gt;.NET Framework you have installed.&lt;br /&gt;3. Once ASP.NET is installed, close the command prompt and check again to&lt;br /&gt;confirm whether ASP.NET installed correctly.&lt;br /&gt;If it still hasn’t installed, try visiting the Microsoft Knowledge Base[6] for help.&lt;br /&gt;Where Do I Put My Files?&lt;br /&gt;Now that you have ASP.NET up and running, let’s take a look at where the files&lt;br /&gt;for your Web applications are kept on the computer. You can readily set IIS to&lt;br /&gt;look for Web applications within any folder of your choice, including the My&lt;br /&gt;Documents folder or even a network share. By default, IIS maps the wwwroot&lt;br /&gt;subfolder of C:\Inetpub on the server to your Website’s root directory, and it&lt;br /&gt;is generally considered a good repository for storing and managing your Web&lt;br /&gt;applications.&lt;br /&gt;[6] http://support.microsoft.com/&lt;br /&gt;Order the print version of this book to get all 700+ pages! 12&lt;br /&gt;Chapter 1: Introduction to .NET and ASP.NET&lt;br /&gt;If you open this wwwroot folder in Windows Explorer, and compare it with the&lt;br /&gt;folder tree that appears on the left of the IIS console, you’ll notice that the folders&lt;br /&gt;in Explorer also appear under your Default Web Site node. Note that, while&lt;br /&gt;several of these folders have the regular Explorer folder icon in the IIS view,&lt;br /&gt;others have a special Web application icon, indicating that these folders contain&lt;br /&gt;the pages and other items for a particular Web application. These special folders&lt;br /&gt;are what IIS calls Virtual Directories, and, in fact, they do not have to share&lt;br /&gt;the name of the physical folder to which they map. We’ll see more on this shortly.&lt;br /&gt;Using Localhost&lt;br /&gt;By putting your files within C:\Inetpub\wwwroot, you’ve given your Web server&lt;br /&gt;access to them. If you’ve been developing Web pages for a long time, habit may&lt;br /&gt;drive you to open files directly in your browser by double-clicking on the HTML&lt;br /&gt;files. Because ASP.NET is a server-side language, your Web server needs to have&lt;br /&gt;a crack at the file before it’s sent to your browser for display. If the server doesn’t&lt;br /&gt;get this opportunity, the ASP.NET code is not converted into HTML that your&lt;br /&gt;browser can understand. For this reason, ASP.NET files can’t be opened directly&lt;br /&gt;from Windows Explorer.&lt;br /&gt;Instead, you need to open them in your browser using the special Web address&lt;br /&gt;that indicates the current computer, http://localhost/. If you try this now, IIS will&lt;br /&gt;open up some HTML help documentation, because we’ve not yet set up a default&lt;br /&gt;Website. This localhost name is, in fact, equivalent to the so-called loopback IP&lt;br /&gt;address, 127.0.0.1, IP which you can check out by entering http://127.0.0.1/ in&lt;br /&gt;your browser; you should see the same page you saw using localhost. If you know&lt;br /&gt;them, you can also use the name of your server or the real IP address of your&lt;br /&gt;machine to the same effect.&lt;br /&gt;Note that if you do try any of these equivalents, a dialog will appear before the&lt;br /&gt;page is opened, asking for your network credentials, because you’re no longer&lt;br /&gt;using your local authentication implicit with localhost.&lt;br /&gt;Stopping and Starting IIS&lt;br /&gt;Now that we have IIS up and running, and ASP.NET installed, let’s look at how&lt;br /&gt;you can start, stop, and restart IIS if the need arises. For the most part, you’ll&lt;br /&gt;always want to have IIS running, except when you’re using certain programs&lt;br /&gt;locally that open ports and allow intruders to compromise the security of your&lt;br /&gt;computer. Some programs, like Kazaa, automatically stop IIS upon launch, because&lt;br /&gt;of potential security vulnerabilities. If you want to stop IIS when it’s not&lt;br /&gt;being used, simply follow the steps outlined below:&lt;br /&gt;13 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Using Localhost&lt;br /&gt;1. With IIS open, select Default Web Site. The Play, Stop, and Pause icons will&lt;br /&gt;become visible.&lt;br /&gt;2. Select Stop, as shown in Figure 1.3.&lt;br /&gt;Figure 1.3. Select the Stop icon to stop IIS.&lt;br /&gt;3. To start IIS again, all you need to do is click the Play icon.&lt;br /&gt;Virtual Directories&lt;br /&gt;I’ve already briefly introduced the concept of virtual directories, which are a&lt;br /&gt;key mechanism in IIS; now I’d like to define a virtual directory a little more&lt;br /&gt;clearly.&lt;br /&gt;A virtual directory is simply a name (or alias) that points to a local folder or&lt;br /&gt;network share on the server. This alias is then used to access the Web application&lt;br /&gt;held in that physical location. For instance, imagine your company has a Web&lt;br /&gt;server that serves documents from C:\Inetpub\wwwroot\mySiteA. Your users&lt;br /&gt;can access these documents through this URL:&lt;br /&gt;http://www.mycompany.com/mySiteA/&lt;br /&gt;You could also set up another physical location as a different virtual directory in&lt;br /&gt;IIS. If, for instance, you were developing another Web application, you could&lt;br /&gt;store the files for it in C:\dev\newSiteB. You could then create in IIS a new&lt;br /&gt;virtual directory called, say, CoolPages, which maps to this location. This new&lt;br /&gt;site would then be accessible through this URL:&lt;br /&gt;http://www.mycompany.com/CoolPages/&lt;br /&gt;As this application is in development, you would probably want to set IIS to hide&lt;br /&gt;this virtual directory from the public until the project is complete. Your existing&lt;br /&gt;Website would still be visible.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 14&lt;br /&gt;Chapter 1: Introduction to .NET and ASP.NET&lt;br /&gt;Let’s create a virtual directory on your server now:&lt;br /&gt;1. Right-click on Default Web Site and select Virtual Directory from the New&lt;br /&gt;submenu. The Virtual Directory Creation Wizard will appear. Click Next.&lt;br /&gt;2. Type in an alias for your virtual directory. I’ll type in WebDocs. Click Next.&lt;br /&gt;3. Browse for the directory in which your application is located. For this example,&lt;br /&gt;I’m going to choose the My Pictures folder located within the My&lt;br /&gt;Documents directory. Click Next.&lt;br /&gt;4. Set Access Permissions for your directory. Typically, you’ll want to check&lt;br /&gt;Read, Run scripts, and Browse. You will not need to select Write until we get&lt;br /&gt;into accessing the file system, discussed in Chapter 15. Click Next.&lt;br /&gt;5. Click Finish.&lt;br /&gt;Once your new virtual directory has been created, it will appear within the&lt;br /&gt;Website list as shown in Figure 1.4.&lt;br /&gt;Figure 1.4. Once the virtual directory has been created, it will&lt;br /&gt;appear within the list of sites.&lt;br /&gt;Now, if you type http://localhost/WebDocs/ in your browser, IIS will recognize&lt;br /&gt;that you’re looking for a Website held in the My Pictures directory. By default,&lt;br /&gt;when we request a virtual directory in this way, IIS looks for an index HTML&lt;br /&gt;page such as index.html or default.htm. If there is no index page—in this case&lt;br /&gt;there isn’t—IIS assumes we want to see the contents of the requested location.&lt;br /&gt;15 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Virtual Directories&lt;br /&gt;However, viewing the entire content of a location like this is not usually something&lt;br /&gt;we want our users to do; they could then freely see and access all the files and&lt;br /&gt;directories that make up our Web page. Not only is this a little messy and unprofessional,&lt;br /&gt;but it also can provide information to hackers that could let them attack&lt;br /&gt;our site. So, by default, IIS won’t allow this—we’ll receive a message reading,&lt;br /&gt;“Directory Listing Denied” in our browser.&lt;br /&gt;Bearing that in mind, there are, however, circumstances in which we do want to&lt;br /&gt;allow directory listings, so let’s see how we can enable this in IIS. First, we have&lt;br /&gt;to right click the virtual directory in the IIS console, and choose Properties. Then,&lt;br /&gt;we select the Virtual Directory tab, and check the Directory browsing box. When&lt;br /&gt;we click OK and open (or refresh) the same URL in our browser, we’ll see a list&lt;br /&gt;of all the files within the My Pictures folder.&lt;br /&gt;The Properties dialog that we’ve just used lets us configure various other useful&lt;br /&gt;properties, including:&lt;br /&gt;Virtual Directory Allows you to configure directory-level properties including&lt;br /&gt;path information, virtual directory name, access&lt;br /&gt;permissions, etc. Everything that was set up&lt;br /&gt;through the wizard is modifiable through this tab.&lt;br /&gt;Document Allows you to configure a default page that displays&lt;br /&gt;when the user types in a full URL. For instance, because&lt;br /&gt;default.aspx is listed as a default page, the&lt;br /&gt;user needs only to type in http://www.mysite.com/ into&lt;br /&gt;the browser’s address bar, rather than&lt;br /&gt;http://www.mysite.com/default.aspx. You can easily&lt;br /&gt;change and remove these by selecting the appropriate&lt;br /&gt;button to the right of the menu.&lt;br /&gt;Directory Security Provides you with security configuration settings for&lt;br /&gt;the virtual directory.&lt;br /&gt;HTTP Headers Gives you the ability to forcefully control page caching&lt;br /&gt;on the server, add custom HTTP Headers, Edit Ratings&lt;br /&gt;(helps identify the content your site provides to users),&lt;br /&gt;and create MIME types. Don’t worry about this for&lt;br /&gt;now.&lt;br /&gt;Custom Errors Allows you to define your own custom error pages.&lt;br /&gt;Rather than the standard error messages that appear&lt;br /&gt;within Internet Explorer, you can customize error&lt;br /&gt;Order the print version of this book to get all 700+ pages! 16&lt;br /&gt;Chapter 1: Introduction to .NET and ASP.NET&lt;br /&gt;messages with your company’s logo and an error message&lt;br /&gt;of your choice.&lt;br /&gt;One thing to note at this point is that we can set properties for the Default Web&lt;br /&gt;Site node, and choose to have them ‘propagate’ down to all the virtual directories&lt;br /&gt;we’ve created. So, let’s now go ahead and enable directory browsing as the default&lt;br /&gt;for our Web applications. Please do remember what I’ve said about the dangers&lt;br /&gt;of allowing directory browsing on a production Web application, and keep in&lt;br /&gt;mind that you should never normally allow it in a publicly accessible environment&lt;br /&gt;(even on an intranet). However, during development, this facility can be very&lt;br /&gt;handy, as it allows us to navigate and run all our virtual directories by clicking&lt;br /&gt;on the listing in our browser, rather than having to type in long URLs each time.&lt;br /&gt;To enable directory browsing:&lt;br /&gt;1. Right-click Default Web Site and select Properties. The Default Web Site&lt;br /&gt;Properties dialog will appear.&lt;br /&gt;2. First, we need to remove the default setting which opens up the IIS help&lt;br /&gt;documentation for our root directory, so choose the Documents tab.&lt;br /&gt;3. Select iisstart.asp, and click Remove.&lt;br /&gt;4. Now choose the Home Directory tab.&lt;br /&gt;5. Check the Directory Browsing check box and select OK.&lt;br /&gt;6. When the Inheritance Overrides dialog appears, click Select All and then OK.&lt;br /&gt;To try it out, open your browser and type http://localhost/ in the address bar.&lt;br /&gt;The directory listing will appear within the browser as shown in Figure 1.5.&lt;br /&gt;17 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Virtual Directories&lt;br /&gt;Figure 1.5. Enabling directory browsing for the Web server&lt;br /&gt;provides you with the ability to view directories in a way that’s&lt;br /&gt;similar to the view you’d see within Windows Explorer.&lt;br /&gt;As you create Web applications, you’ll only need to select the directory that the&lt;br /&gt;Web application resides in to launch your work, but do remember to disable&lt;br /&gt;directory browsing should you later make your IIS Web server publicly visible.&lt;br /&gt;Installing Microsoft Access&lt;br /&gt;Access is Microsoft’s database solution for both developers and small companies&lt;br /&gt;who need to house data within a small yet reliable store. Because Microsoft Access&lt;br /&gt;is widely available, it’s usually the perfect choice for discussion and use within&lt;br /&gt;books such as this. Although we won’t be covering data access until Chapter 5,&lt;br /&gt;you may want to start thinking about the scope of your or your company’s needs&lt;br /&gt;and choose a database accordingly. If you’re a small company looking for something&lt;br /&gt;cheap, reliable, and easy to use, then Access is for you. This book will cover&lt;br /&gt;examples using both Access and MSDE. Even if you plan on using MSDE, you&lt;br /&gt;may still want to read this section, as Access provides some good data modeling&lt;br /&gt;tools that aren’t available to you through Web Data Administrator.&lt;br /&gt;You can find more information on Access from the Access Website[15]. Here,&lt;br /&gt;you can find the latest updates, news, and purchase information for Microsoft&lt;br /&gt;Access.&lt;br /&gt;[15] http://www.microsoft.com/office/access/&lt;br /&gt;Order the print version of this book to get all 700+ pages! 18&lt;br /&gt;Chapter 1: Introduction to .NET and ASP.NET&lt;br /&gt;Access is bundled with Professional editions of the Microsoft Office suite, so you&lt;br /&gt;may already have it installed. If you’ve already installed Microsoft Office on your&lt;br /&gt;computer, but didn’t install Access at the same time, you’ll need to add it to your&lt;br /&gt;installation. The following assumes that you have either Microsoft Office 2000&lt;br /&gt;or XP Professional handy, and that you’ll be installing from that CD:&lt;br /&gt;1. Navigate to the Add or Remove Programs menu located within the Control&lt;br /&gt;Panel.&lt;br /&gt;2. Select your Microsoft Office installation from the Programs menu and select&lt;br /&gt;Change.&lt;br /&gt;3. When the Microsoft Office Setup dialog appears, select Add/Remove Features&lt;br /&gt;and click Next.&lt;br /&gt;4. Select Run from My Computer from the Access program menu.&lt;br /&gt;5. Click Update. You will be prompted to insert your Microsoft Office CD, so&lt;br /&gt;make sure you have it handy. Access will now install.&lt;br /&gt;If you plan to purchase Access, you might like to consider purchasing the Microsoft&lt;br /&gt;Office bundle, as you receive Access, Word, Outlook, PowerPoint, and&lt;br /&gt;Excel for much less than the total cost of each of the components. Installing Access&lt;br /&gt;from either the Microsoft Access or Microsoft Office CDs is easy—just insert the&lt;br /&gt;CD, follow the onscreen prompts, and accept the default installation.&lt;br /&gt;That’s all there is to it. You are now ready to begin working with database-driven&lt;br /&gt;Web applications.&lt;br /&gt;Installing SQL Server Desktop Engine (MSDE)&lt;br /&gt;SQL Server 2000 is Microsoft’s database solution for medium to large companies&lt;br /&gt;and enterprises. It is quite a bit more expensive than Access, generally requires&lt;br /&gt;its own dedicated “database server”, and, at times, requires the hiring of a certified&lt;br /&gt;database administrator (DBA) to maintain; yet it offers a robust and scalable&lt;br /&gt;solution for larger Web applications.&lt;br /&gt;I’ll assume that if you’re reading this book, you probably don’t want to invest in&lt;br /&gt;something as massive as SQL Server, and that your needs are better suited to&lt;br /&gt;something free that’s nearly as powerful for testing and development purposes.&lt;br /&gt;If this is the case, then Microsoft’s SQL Server Desktop Engine, or MSDE, is&lt;br /&gt;perfect for you. MSDE is Microsoft’s free database alternative to SQL Server. It&lt;br /&gt;19 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Installing SQL Server Desktop Engine (MSDE)&lt;br /&gt;functions and stores data exactly as SQL Server does, but is licensed for development&lt;br /&gt;purposes only.&lt;br /&gt;Once the .NET Framework SDK is installed, installing MSDE is a snap and can&lt;br /&gt;be completed as follows:&lt;br /&gt;1. Select Start &gt; Programs &gt; Microsoft Framework SDK, and choose Samples and&lt;br /&gt;QuickStart Tutorials.&lt;br /&gt;2. Choose the Download and Install the Microsoft SQL Server 2000 Desktop&lt;br /&gt;Engine link. You will be redirected to a download page on Microsoft’s&lt;br /&gt;Website.&lt;br /&gt;3. Select Step 1: Download the Microsoft SQL Server 2000 Desktop Engine (68.4&lt;br /&gt;MB).&lt;br /&gt;4. Save the file onto your hard drive. At nearly 70 MB, this may take some&lt;br /&gt;time, so you may want to move onto the section called “Your First ASP.NET&lt;br /&gt;Page” later in this chapter while the download continues, as our first example&lt;br /&gt;doesn’t use a database. Once the download is done, come back and continue&lt;br /&gt;the installation process.&lt;br /&gt;5. Double-click the downloaded file and follow the instructions to unpack the&lt;br /&gt;MSDE setup files.&lt;br /&gt;6. Open the Command Prompt by selecting Start &gt; Run; type cmd, and select&lt;br /&gt;OK.&lt;br /&gt;7. Change to the directory to which you extracted the files using cd on the&lt;br /&gt;command line. MSDE extracts to C:\sql2ksp3\MSDE by default.&lt;br /&gt;8. Type the following command (all on one line) in the MSDE directory to set&lt;br /&gt;up MSDE:&lt;br /&gt;Setup.exe /qb+ INSTANCENAME=NetSDK DISABLENETWORKPROTOCOLS=1&lt;br /&gt;SAPWD=PASSWORD&lt;br /&gt;The complete set of commands is shown in Figure 1.6.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 20&lt;br /&gt;Chapter 1: Introduction to .NET and ASP.NET&lt;br /&gt;Figure 1.6. Install MSDE by running the command line&lt;br /&gt;executable and setting necessary parameters.&lt;br /&gt;It’s a good idea to set a suitable system administrator password using the&lt;br /&gt;SAPWD parameter as shown above, although you can apply the traditional&lt;br /&gt;blank password by using the BLANKSAPWD=1 parameter instead.&lt;br /&gt;9. MSDE will now install.&lt;br /&gt;10. Restart your computer for changes to take effect.&lt;br /&gt;If all goes well, when the computer restarts, you’ll notice in the task bar tray a&lt;br /&gt;small icon that looks like a cylinder with a play icon on top, as shown in Figure&lt;br /&gt;1.7.&lt;br /&gt;Figure 1.7. MSDE runs out of sight within the task bar tray.&lt;br /&gt;That icon represents the database Service Manager. It lets you start and stop the&lt;br /&gt;database engine; all you have to do is double-click that icon within the task bar&lt;br /&gt;tray. Double-click the icon now to open the Service Manager Dialog, where you&lt;br /&gt;can select the Play icon to start the service, or the Stop icon to stop the service.&lt;br /&gt;In some cases, you may not see either a green triangle or a red square; instead,&lt;br /&gt;you see an empty white circle. When you open Service Manager, you’ll see the&lt;br /&gt;message “Not Connected” appear in the status bar at the bottom. You’ll need to&lt;br /&gt;type YourComputer\netsdk in the Server drop-down (where YourComputer is&lt;br /&gt;21 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Installing SQL Server Desktop Engine (MSDE)&lt;br /&gt;the name of your computer), and click Refresh services. MSDE should then connect,&lt;br /&gt;and the green triangle should appear.&lt;br /&gt;Installing and Configuring Web Data&lt;br /&gt;Administrator&lt;br /&gt;In order to use MSDE effectively, you’ll need some sort of administration tool&lt;br /&gt;to work with your databases. Web Data Administrator is another free tool&lt;br /&gt;provided by Microsoft that allows you to manage your instance of MSDE locally&lt;br /&gt;and remotely using a Web-based interface. You can download this program from&lt;br /&gt;Microsoft’s developer site[16]. Scroll to the bottom of that page and you’ll find&lt;br /&gt;two search boxes. Leave the top one at All, and type Web Data Administrator&lt;br /&gt;in the bottom one, then click search. The search results should include the correct&lt;br /&gt;page.&lt;br /&gt;Once you’ve downloaded it, simply double-click the .msi file to install. Once&lt;br /&gt;installed, Web Data Administrator can be accessed through your browser at the&lt;br /&gt;URL http://localhost/SqlWebAdmin, but before it can be used, you’ll need to&lt;br /&gt;enable what is known as SQL Mixed Mode authentication.&lt;br /&gt;This involves making a small change to the registry, but don’t be put off. If you&lt;br /&gt;follow these instructions exactly, you won’t do any harm. Let’s do it! Click Start,&lt;br /&gt;then Run…. In the dialog, type regedit and press Enter to open the registry editor.&lt;br /&gt;Now expand the HKEY_LOCAL_MACHINE node in the left hand pane, then&lt;br /&gt;expand the SOFTWARE node. Next, find and open the Microsoft node, and, inside&lt;br /&gt;that, open one labeled Microsoft SQL Server. In there, you should find a node&lt;br /&gt;called NETSDK, which contains another, called MSSQLServer. Select that node,&lt;br /&gt;and find the key (in the right hand pane) called LoginMode. Double-click that,&lt;br /&gt;and change its Value data from 1 to 2, then click OK. Now, close regedit, and&lt;br /&gt;restart your computer. Phew! That was a bit of a trek, but I hope you found it&lt;br /&gt;easier in practice than it appears on paper!&lt;br /&gt;Now, open the Web Data Administrator URL given above. You’ll be asked for&lt;br /&gt;the login, password, and server name for your instance of MSDE. Type sa in the&lt;br /&gt;user name box, and the password that you supplied during the installation of&lt;br /&gt;MSDE. If you’re unsure what the name of your server is, double-click the database&lt;br /&gt;engine icon within the task bar tray. The name of your server is located within&lt;br /&gt;the server drop-down menu.&lt;br /&gt;[16] http://msdn.microsoft/downloads/&lt;br /&gt;Order the print version of this book to get all 700+ pages! 22&lt;br /&gt;Chapter 1: Introduction to .NET and ASP.NET&lt;br /&gt;Once you’ve done this and clicked Login, you will see a list of the databases that&lt;br /&gt;are currently available from MSDE, as shown in Figure 1.8.&lt;br /&gt;Figure 1.8. Web Data Administrator allows you to work with your&lt;br /&gt;databases within MSDE.&lt;br /&gt;More information on Web Data Administrator, MSDE, and databases will be&lt;br /&gt;covered in Chapter 6.&lt;br /&gt;Your First ASP.NET Page&lt;br /&gt;For your first run at ASP.NET, we’ll create the simple example shown in Figure&lt;br /&gt;1.9.&lt;br /&gt;23 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Your First ASP.NET Page&lt;br /&gt;Figure 1.9. We’ll create a simple ASP.NET page that says "Hello&lt;br /&gt;there" and displays the time.&lt;br /&gt;Let’s get started! Open your text editor (Notepad2 is fine). If you have software&lt;br /&gt;that creates ASP.NET pages automatically, such as Visual Studio .NET, please&lt;br /&gt;do not use it yet. These programs provide lots of powerful tools for building&lt;br /&gt;complex ASP.NET pages in a hurry, but for simple examples like this one, they&lt;br /&gt;tend to get in the way, rather than provide assistance.&lt;br /&gt;Open your text editor, and start by entering the plain HTML for our page:&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;title&gt;My First ASP.NET Page&lt;/title&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;p&gt;Hello there!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The time is now: &lt;/p&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;So far, so good, right? Now, we’ll add some ASP.NET code that will create the&lt;br /&gt;dynamic elements of the page, starting with the time.&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;2If you do use Notepad, be aware that to need to put quotes around any filename that doesn’t end&lt;br /&gt;with .txt in the Save As dialog. Most ASP.NET file names end with .aspx; if you forget to put&lt;br /&gt;quotes around them when saving, you’ll end up with files called filename.aspx.txt!&lt;br /&gt;Order the print version of this book to get all 700+ pages! 24&lt;br /&gt;Chapter 1: Introduction to .NET and ASP.NET&lt;br /&gt;&lt;title&gt;My First ASP.NET Page&lt;/title&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;p&gt;Hello there!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The time is now: &lt;asp:label runat="server" id="lblTime"&gt;&lt;/p&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;We’ve added an &lt;asp:label&gt; tag to the document. This is a special tag that lets&lt;br /&gt;us insert dynamic content into the page. The asp: part of the tag name identifies&lt;br /&gt;it as a built-in ASP.NET tag. ASP.NET comes with numerous built-in tags;&lt;br /&gt;&lt;asp:label&gt; is arguably the simplest.&lt;br /&gt;The runat="server" attribute identifies the tag as something that needs to be&lt;br /&gt;handled on the server. In other words, the Web browser will never see the&lt;br /&gt;&lt;asp:label&gt; tag; ASP.NET sees it and converts it to regular HTML tags before&lt;br /&gt;the page is sent to the browser. It’s up to us to write the code that will tell&lt;br /&gt;ASP.NET to replace this particular tag with the current time.&lt;br /&gt;To do this, we must add some script to our page. Like ASP before it, ASP.NET&lt;br /&gt;gives you the choice of a number of different languages to use in your scripts.&lt;br /&gt;The two most common languages are Visual Basic.NET (VB.NET) and C#&lt;br /&gt;(pronounced “C sharp”). Let’s take a look at examples using both. Here’s a version&lt;br /&gt;of the page in VB.NET:&lt;br /&gt;VB.NET File: FirstPage.aspx&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;title&gt;My First ASP.NET Page&lt;/title&gt;&lt;br /&gt;&lt;script runat="server" language="VB"&gt;&lt;br /&gt;Sub Page_Load(s As Object, e As EventArgs)&lt;br /&gt;lblTime.Text = DateTime.Now.ToString()&lt;br /&gt;End Sub&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;p&gt;Hello there!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The time is now: &lt;asp:label runat="server" id="lblTime"&gt;&lt;/p&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;Here’s the same page written in C#:&lt;br /&gt;25 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Your First ASP.NET Page&lt;br /&gt;C# File: FirstPage.aspx&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;title&gt;My First ASP.NET Page&lt;/title&gt;&lt;br /&gt;&lt;script runat="server" language="C#"&gt;&lt;br /&gt;protected void Page_Load(Object s, EventArgs e)&lt;br /&gt;{&lt;br /&gt;lblTime.Text = DateTime.Now.ToString();&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;p&gt;Hello there!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The time is now: &lt;asp:label runat="server" id="lblTime"&gt;&lt;/p&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;Both versions of the page achieve exactly the same thing. If you’ve never done&lt;br /&gt;any server-side programming before, this may be starting to look a little scary.&lt;br /&gt;Let’s break down the new elements of this page:&lt;br /&gt;File: FirstPage.aspx (excerpt)&lt;br /&gt;&lt;script runat="server"&gt;&lt;br /&gt;This tag, otherwise known as a code declaration block, marks the start of serverside&lt;br /&gt;code. Like the &lt;asp:label&gt; tag, this &lt;script&gt; tag uses the runat="server"&lt;br /&gt;attribute to let ASP.NET know that the tag should be processed before sending&lt;br /&gt;the page to the browser.&lt;br /&gt;VB.NET File: FirstPage.aspx (excerpt)&lt;br /&gt;Sub Page_Load(s As Object, e As EventArgs)&lt;br /&gt;C# File: FirstPage.aspx (excerpt)&lt;br /&gt;protected void Page_Load(Object s, EventArgs s) {&lt;br /&gt;I won’t go into too much detail here. For now, all you need to know is that you&lt;br /&gt;can write script fragments that are run in response to different events, such as a&lt;br /&gt;button being clicked or an item being selected from a drop-down list. What the&lt;br /&gt;first line basically says is "execute the following script whenever the page is loaded."&lt;br /&gt;Note that C# groups code into blocks with curly braces, while Visual Basic tends&lt;br /&gt;to use statements such as End Sub to mark the end of a particular sequence. So,&lt;br /&gt;the curly brace in the C# code above ({) marks the start of the script that will&lt;br /&gt;be executed when the page loads for the first time. For the technically minded,&lt;br /&gt;Order the print version of this book to get all 700+ pages! 26&lt;br /&gt;Chapter 1: Introduction to .NET and ASP.NET&lt;br /&gt;the code we’ve just seen is a method definition for a page load event handler,&lt;br /&gt;which is essentially the code that the server runs when the page is requested for&lt;br /&gt;the first time.&lt;br /&gt;Finally, here’s the line that actually displays the time on the page:&lt;br /&gt;VB.NET File: FirstPage.aspx (excerpt)&lt;br /&gt;lblTime.Text = DateTime.Now.ToString()&lt;br /&gt;C# File: FirstPage.aspx (excerpt)&lt;br /&gt;lblTime.Text = DateTime.Now.ToString();&lt;br /&gt;You can see that these two .NET languages have much in common, because they&lt;br /&gt;are both built on the .NET Framework. In fact, the only difference with the above&lt;br /&gt;line is that C# ends code lines with a semicolon (;). In plain English, here’s what&lt;br /&gt;this line says:&lt;br /&gt;Set the Text property of lblTime to the current date/time, expressed&lt;br /&gt;as a string of text.&lt;br /&gt;Note that lblTime is the value we gave for the id attribute of the &lt;asp:label&gt;&lt;br /&gt;tag where we want to show the time. So, lblTime.Text, the Text property of&lt;br /&gt;lblTime, refers to the text that will be displayed by the tag. DateTime is a class&lt;br /&gt;that’s built into the .NET Framework, and which lets you perform all sorts of&lt;br /&gt;useful functions with dates and times. There are thousands of these classes that&lt;br /&gt;do all sorts of useful things within the .NET Framework. These classes are also&lt;br /&gt;known as the .NET Framework Class Library.&lt;br /&gt;The DateTime class has a property called Now that always contains the current&lt;br /&gt;date and time. This Now property has a method called ToString() that expresses&lt;br /&gt;that date and/or time as text (a segment of text is commonly called a string in&lt;br /&gt;programming circles). Classes, properties, and methods: these are all important&lt;br /&gt;words in the vocabulary of any programmer, and we’ll discuss them later on in&lt;br /&gt;the book. For now, all you need to take away from this discussion is that Date-&lt;br /&gt;Time.Now.ToString() will give you the current date and time as a text string,&lt;br /&gt;which you can then tell your &lt;asp:label&gt; tag to display. The rest of the script&lt;br /&gt;block simply ties up loose ends:&lt;br /&gt;VB.NET File: FirstPage.aspx (excerpt)&lt;br /&gt;End Sub&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;27 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Your First ASP.NET Page&lt;br /&gt;C# File: FirstPage.aspx (excerpt)&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;The closing (End Sub) and (}) mark the end of the script to be run when the&lt;br /&gt;page is loaded, and the &lt;/script&gt; tag marks the end of the script block.&lt;br /&gt;Create a new subdirectory of C:\Inetpub\wwwroot on your Web server, and save&lt;br /&gt;your file there under the name FirstPage.aspx. Now, open your browser and&lt;br /&gt;point type this URL in the address bar:&lt;br /&gt;http://localhost/test/FirstPage.aspx&lt;br /&gt;Replace test with the name that you gave to the directory in which you saved&lt;br /&gt;the file. You should see a page similar to the one we saw in Figure 1.9.&lt;br /&gt;If the time isn’t displayed, chances are that you opened the file directly in your&lt;br /&gt;browser instead of loading it through your Web server. Because ASP.NET is a&lt;br /&gt;server-side language, your Web server needs to access the file before it’s sent to&lt;br /&gt;your browser for display. If it doesn’t get access to the file, the ASP.NET code is&lt;br /&gt;never converted into HTML that your browser can understand, so make sure&lt;br /&gt;you load the page by typing an actual URL (e.g. http://localhost/test/index.aspx),&lt;br /&gt;not just a path and filename.&lt;br /&gt;With the page displayed in your browser, use the View Source feature (View,&lt;br /&gt;Source in Internet Explorer) to view the HTML code for the page. Here’s what&lt;br /&gt;you’ll see:&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;title&gt;My First ASP.NET Page&lt;/title&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;p&gt;Hello there!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The time is now: &lt;span id="lblTime"&gt;10/13/2003 1:55:09&lt;br /&gt;PM&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;Notice that all the ASP.NET code has gone! Even the script block has been&lt;br /&gt;completely removed, and the &lt;asp:label&gt; tag has been replaced by a &lt;span&gt;&lt;br /&gt;tag (with the same id attribute as the &lt;asp:label&gt; tag that we used) containing&lt;br /&gt;the date and time string.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 28&lt;br /&gt;Chapter 1: Introduction to .NET and ASP.NET&lt;br /&gt;That’s how ASP.NET works. From the Web browser’s point of view, there is&lt;br /&gt;nothing special about an ASP.NET page; it’s just plain HTML like any other. All&lt;br /&gt;the ASP.NET code is run by your Web server and converted to plain HTML&lt;br /&gt;that’s sent to the browser. So far, so good: the example above was fairly simple.&lt;br /&gt;The next chapter will get a bit more challenging as we begin to introduce you to&lt;br /&gt;some valuable programming concepts.&lt;br /&gt;The ASP.NET Support Site&lt;br /&gt;The official Microsoft ASP.NET support Website can be found at&lt;br /&gt;http://www.asp.net/. As you develop ASP.NET Web applications, you will undoubtedly&lt;br /&gt;have questions and problems that need to be answered. The ASP.NET&lt;br /&gt;support Website was developed by Microsoft as a portal for the ASP.NET community&lt;br /&gt;to answer the questions and solve the problems that developers have&lt;br /&gt;while using ASP.NET. The support Website provides useful information, such&lt;br /&gt;as news, downloads, articles, and discussion forums. You can also ask questions&lt;br /&gt;of the experienced community members in the SitePoint Forums[20].&lt;br /&gt;Summary&lt;br /&gt;In this chapter, you learned about .NET. You also learned of the benefits of&lt;br /&gt;ASP.NET and that it’s a part of the .NET Framework. First, you learned about&lt;br /&gt;the constructs of ASP.NET and how to locate and install the .NET Framework.&lt;br /&gt;Then, we explored the software that’s required not only for this book, but also&lt;br /&gt;in order for you or your company to progress with ASP.NET.&lt;br /&gt;You’ve gained a solid foundation in the world of ASP.NET! The next chapter&lt;br /&gt;will build on this knowledge and begin to introduce you to ASP.NET in more&lt;br /&gt;detail, including page structure, languages to use, programming concepts, and&lt;br /&gt;form processing.&lt;br /&gt;[20] http://www.sitepoint.com/forums/&lt;br /&gt;29 Order the print version of this book to get all 700+ pages!&lt;br /&gt;The ASP.NET Support Site&lt;br /&gt;30&lt;br /&gt;ASP.NET Basics 2&lt;br /&gt;So far, you’ve learned what ASP.NET is, and what it can do—you even know&lt;br /&gt;how to create a simple ASP.NET page. Don’t worry if it seems a little bewildering&lt;br /&gt;right now, because, as this book progresses, you’ll learn how to use ASP.NET at&lt;br /&gt;more advanced levels. So far, you’ve installed the necessary software to get going&lt;br /&gt;and have been introduced to some very simple form processing techniques.&lt;br /&gt;As the next few chapters unfold, we’ll introduce more advanced topics, including&lt;br /&gt;controls, programming techniques, and more. Before we can begin developing&lt;br /&gt;applications with ASP.NET, however, you’ll need to understand the inner&lt;br /&gt;workings of a typical ASP.NET page. This will help you identify the various parts&lt;br /&gt;of the ASP.NET page referenced by the many examples within the book. In this&lt;br /&gt;chapter, we’ll talk about some key mechanisms of an ASP.NET page, specifically:&lt;br /&gt; Page structure&lt;br /&gt; View state&lt;br /&gt; Namespaces&lt;br /&gt; Directives&lt;br /&gt;We’ll also cover two of the "built-in" languages supported by the .NET Framework:&lt;br /&gt;VB.NET and C#. As this section begins to unfold, we’ll explore the differences,&lt;br /&gt;similarities, and power that the two languages provide in terms of creating&lt;br /&gt;ASP.NET applications.&lt;br /&gt;So, what exactly makes up an ASP.NET page? The next few sections will give&lt;br /&gt;you an in-depth understanding of the constructs of a typical ASP.NET page.&lt;br /&gt;ASP.NET Page Structure&lt;br /&gt;ASP.NET pages are simply text files with the .aspx file name extension that can&lt;br /&gt;be placed on an IIS server equipped with ASP.NET. When a browser requests&lt;br /&gt;an ASP.NET page, the ASP.NET runtime (as a component of the .NET Framework’s&lt;br /&gt;Common Language Runtime, or CLR) parses and compiles the target file&lt;br /&gt;into a .NET Framework class. The application logic now contained within the&lt;br /&gt;new class is used in conjunction with the presentational HTML elements of the&lt;br /&gt;ASP.NET page to display dynamic content to the user. Sounds simple, right?&lt;br /&gt;An ASP.NET page consists of the following elements:&lt;br /&gt; Directives&lt;br /&gt; Code declaration blocks&lt;br /&gt; Code render blocks&lt;br /&gt; ASP.NET server controls&lt;br /&gt; Server-side comments&lt;br /&gt; Server-side include directives&lt;br /&gt; Literal text and HTML tags&lt;br /&gt;It’s important to remember that ASP.NET pages are just text files with an .aspx&lt;br /&gt;extension that are processed by the runtime to create standard HTML, based on&lt;br /&gt;their contents. Presentational elements within the page are contained within the&lt;br /&gt;&lt;body&gt; tag, while application logic or code can be placed inside &lt;script&gt; tags.&lt;br /&gt;Remember this pattern from the sample at the end of the previous chapter? Figure&lt;br /&gt;2.1 illustrates the various parts of that page.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 32&lt;br /&gt;Chapter 2: ASP.NET Basics&lt;br /&gt;Figure 2.1. All the elements of an ASP.NET page are highlighted.&lt;br /&gt;Everything else is literal text and HTML tags.&lt;br /&gt;As you can see, this ASP.NET page contains examples of all the above components&lt;br /&gt;(except server-side includes) that make up an ASP.NET page. You won’t often&lt;br /&gt;use every single element in a given page, but you should become familiar with&lt;br /&gt;these elements, the purpose that each serves, and how and when it’s appropriate&lt;br /&gt;to use them.&lt;br /&gt;Directives&lt;br /&gt;The directives section is one of the most important parts of an ASP.NET page.&lt;br /&gt;Directives control how a page is compiled, specify settings when navigating&lt;br /&gt;between pages, aid in debugging (error-fixing), and allow you to import classes&lt;br /&gt;to use within your page’s code. Directives start with the sequence &lt;%@, followed&lt;br /&gt;by the directive name, plus any attributes and their corresponding values, then&lt;br /&gt;end with %&gt;. Although there are many directives that you can use within your&lt;br /&gt;pages, the two most important are the Import and Page directives. We will discuss&lt;br /&gt;directives in greater detail later, but, for now, know that the Import and Page&lt;br /&gt;directives are the most useful for ASP.NET development. Looking at the sample&lt;br /&gt;ASP.NET page in Figure 2.1, you can see that a Page directive was used at the&lt;br /&gt;top of the page as shown:&lt;br /&gt;33 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Directives&lt;br /&gt;VB.NET&lt;br /&gt;&lt;%@ Page Language="VB" %&gt;&lt;br /&gt;C#&lt;br /&gt;&lt;%@ Page Language="C#" %&gt;&lt;br /&gt;The Page directive, in this case, specifies the language that’s to be used for the&lt;br /&gt;application logic by setting the Language attribute appropriately. The value&lt;br /&gt;provided for this attribute, in quotes, specifies that we’re using either VB.NET&lt;br /&gt;or C#. There’s a whole range of different directives; we’ll see a few more later in&lt;br /&gt;this chapter.&lt;br /&gt;Unlike ASP, in ASP.NET, directives can appear anywhere on a page, but are&lt;br /&gt;most commonly written as the very first lines.&lt;br /&gt;Code Declaration Blocks&lt;br /&gt;In Chapter 3 we’ll talk about code-behind pages and how they let us separate&lt;br /&gt;our application logic from an ASP.NET page’s HTML presentation code. If you’re&lt;br /&gt;not working with code-behind pages, however, code declaration blocks must&lt;br /&gt;be used to contain all the application logic of your ASP.NET page. This application&lt;br /&gt;logic defines variables, subroutines, functions, and more. In our page, we place&lt;br /&gt;the code inside &lt;script&gt; tags, like so:&lt;br /&gt;VB.NET&lt;br /&gt;&lt;script runat="server"&gt;&lt;br /&gt;Sub mySub()&lt;br /&gt;' Code here&lt;br /&gt;End Sub&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;Here, the tags enclose some VB.NET code, but it could just as easily be C# if&lt;br /&gt;our page language were set thus:&lt;br /&gt;C#&lt;br /&gt;&lt;script runat="server"&gt;&lt;br /&gt;void mySub() {&lt;br /&gt;// Code here&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;Order the print version of this book to get all 700+ pages! 34&lt;br /&gt;Chapter 2: ASP.NET Basics&lt;br /&gt;Comments in VB.NET and C# Code&lt;br /&gt;Both of these code snippets contain comments—explanatory text that will be ignored by&lt;br /&gt;ASP.NET, but which serves to describe how the code works.&lt;br /&gt;In VB.NET code, a single quote or apostrophe (') indicates that the remainder of the line&lt;br /&gt;is to be ignored as a comment.&lt;br /&gt;In C# code, two slashes (//) does the same. C# code also lets you span a comment over&lt;br /&gt;multiple lines by beginning it with /* and ending it with */.&lt;br /&gt;Before .NET emerged, ASP also supported such script tags using a runat="server"&lt;br /&gt;attribute, although they could only ever contain VBScript, and, for a variety&lt;br /&gt;of reasons, they failed to find favor among developers. Code declaration blocks&lt;br /&gt;are generally placed inside the &lt;head&gt; tag of your ASP.NET page. The sample&lt;br /&gt;ASP.NET page shown in Figure 2.1, for instance, contained the following code&lt;br /&gt;declaration block:&lt;br /&gt;VB.NET&lt;br /&gt;&lt;script runat="server"&gt;&lt;br /&gt;Sub Page_Load()&lt;br /&gt;lblMessage.Text = "Hello World"&lt;br /&gt;End Sub&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;Perhaps you can work out what the equivalent C# code would be:&lt;br /&gt;C#&lt;br /&gt;&lt;script runat="server"&gt;&lt;br /&gt;void Page_Load() {&lt;br /&gt;lblMessage.Text = "Hello World";&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;The &lt;script runat="server"&gt; tag accepts two other attributes, as well. You&lt;br /&gt;can set the language used in the block with the language attribute:&lt;br /&gt;VB.NET&lt;br /&gt;&lt;script runat="server" language="VB"&gt;&lt;br /&gt;C#&lt;br /&gt;&lt;script runat="server" language="C#"&gt;&lt;br /&gt;If you don’t specify a language within the code declaration block, the ASP.NET&lt;br /&gt;page will use the language provided by the language attribute of the Page direct-&lt;br /&gt;35 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Code Declaration Blocks&lt;br /&gt;ive. Each page may only contain code in a single language; for instance, it is not&lt;br /&gt;possible to mix VB.NET and C# in the same page.&lt;br /&gt;The second attribute available is src, which lets you specify an external code file&lt;br /&gt;to use within your ASP.NET page:&lt;br /&gt;VB.NET&lt;br /&gt;&lt;script runat="server" language="VB" src="mycodefile.vb"&gt;&lt;br /&gt;C#&lt;br /&gt;&lt;script runat="server" language="C#" src="mycodefile.cs"&gt;&lt;br /&gt;Code Render Blocks&lt;br /&gt;You can use code render blocks to define inline code or inline expressions that&lt;br /&gt;execute when a page is rendered, and you may recognize these blocks from traditional&lt;br /&gt;ASP. Code within a code render block is executed immediately as it is encountered,&lt;br /&gt;usually when the page is loaded or rendered for the first time, and&lt;br /&gt;every time the page is loaded subsequently. Code within a code declaration block,&lt;br /&gt;on the other hand, occurring within script tags, is only executed when it is called&lt;br /&gt;or triggered by user or page interactions. There are two types of code render&lt;br /&gt;blocks: inline code and inline expressions, both of which are typically written&lt;br /&gt;within the body of the ASP.NET page.&lt;br /&gt;Inline code render blocks execute one or more statements and are placed directly&lt;br /&gt;inside a page’s HTML within &lt;% and %&gt; characters.&lt;br /&gt;Inline expression render blocks can be compared to Response.Write() in classic&lt;br /&gt;ASP. They start with &lt;%= and end with %&gt;, and are used to display values of the&lt;br /&gt;variables and methods on a page.&lt;br /&gt;Looking back at Figure 2.1, you can see both types of code render blocks:&lt;br /&gt;VB.NET&lt;br /&gt;&lt;% Dim Title As String = "Zak Ruvalcaba" %&gt;&lt;br /&gt;&lt;%= Title %&gt;&lt;br /&gt;This equates to the following C#:&lt;br /&gt;C#&lt;br /&gt;&lt;% String Title = "Zak Ruvalcaba"; %&gt;&lt;br /&gt;&lt;%= Title %&gt;&lt;br /&gt;Order the print version of this book to get all 700+ pages! 36&lt;br /&gt;Chapter 2: ASP.NET Basics&lt;br /&gt;The first line represents an inline code render block and must contain complete&lt;br /&gt;statements in the appropriate language. Here, we’re setting the value of the Title&lt;br /&gt;variable to the string Zak Ruvalcaba. The last line is an example of an inline&lt;br /&gt;expression render block used to write out the value of the Title variable, Zak&lt;br /&gt;Ruvalcaba, onto the page.&lt;br /&gt;ASP.NET Server Controls&lt;br /&gt;At the heart of ASP.NET pages lies the server controls, which represent dynamic&lt;br /&gt;elements that your users can interact with. There are four basic types of server&lt;br /&gt;control: ASP.NET controls, HTML controls, validation controls, and user controls.&lt;br /&gt;All ASP.NET controls must reside within a &lt;form runat="server"&gt; tag in order&lt;br /&gt;to function correctly. The only two exceptions to this rule are the&lt;br /&gt;HtmlGenericControl and the Label Web control.&lt;br /&gt;Server controls offer the following advantages to ASP.NET developers:&lt;br /&gt; We can access HTML elements easily from within our code: we can change&lt;br /&gt;their characteristics, check their values, or even dynamically update them&lt;br /&gt;straight from our server-side programming language of choice.&lt;br /&gt; ASP.NET controls retain their properties even after the page has been processed.&lt;br /&gt;This process is known as view state. We’ll be covering view state later&lt;br /&gt;in this chapter. For now, just know that view state prevents the user from&lt;br /&gt;losing data that has already been entered into a form once it’s been sent to&lt;br /&gt;the server for processing. When the response comes back to the client’s&lt;br /&gt;browser, text box values, drop-down list selections, etc., are all retained through&lt;br /&gt;view state.&lt;br /&gt; With ASP.NET controls, developers are able to separate the presentational&lt;br /&gt;elements (everything the user sees) and application logic (dynamic portions&lt;br /&gt;of the ASP.NET page) of a page so that each can be considered separately.&lt;br /&gt;Because ASP.NET is all about controls, we’ll be discussing them in greater detail&lt;br /&gt;as we move through this book. For instance, in the next few chapters, we’ll discuss&lt;br /&gt;HTML controls and Web controls (Chapter 4), Validation controls (Chapter 5),&lt;br /&gt;Data controls (Chapter 9), and so on.&lt;br /&gt;37 Order the print version of this book to get all 700+ pages!&lt;br /&gt;ASP.NET Server Controls&lt;br /&gt;Server-Side Comments&lt;br /&gt;Server-side comments allow you to include, within the page, comments or notes&lt;br /&gt;that will not be processed by ASP.NET. Traditional HTML uses the &lt;!-- and -&lt;br /&gt;-&gt; character sequences to delimit comments; anything found within these will&lt;br /&gt;not be displayed to the user by the browser. ASP.NET comments look very similar,&lt;br /&gt;but use the sequences &lt;%-- and --%&gt;.&lt;br /&gt;Our ASP.NET example contains the following server-side comment block:&lt;br /&gt;VB.NET&lt;br /&gt;&lt;%-- Declare the title as string and set it --%&gt;&lt;br /&gt;The difference between ASP.NET comments and HTML comments is that&lt;br /&gt;ASP.NET comments are not sent to the client at all. Don’t use HTML comments&lt;br /&gt;to try and comment out ASP.NET code. Consider the following example:&lt;br /&gt;VB.NET&lt;br /&gt;&lt;!--&lt;br /&gt;&lt;button runat="server" id="myButton" onserverclick="Click"&gt;Click&lt;br /&gt;Me&lt;/button&gt;&lt;br /&gt;&lt;% Title = "New Title" %&gt;&lt;br /&gt;--&gt;&lt;br /&gt;Here, it looks as if a developer has attempted to use an HTML comment to hide&lt;br /&gt;not only an HTML button control, but a code render block as well. Unfortunately,&lt;br /&gt;HTML comments will only hide things from the browser, not the ASP.NET&lt;br /&gt;runtime. So, in this case, while we won’t see anything in the browser that represents&lt;br /&gt;these two lines, they will, in fact, have been processed by ASP.NET, and the&lt;br /&gt;value of the variable Title will be changed to New Title. The code could be&lt;br /&gt;modified to use server-side comments very simply:&lt;br /&gt;VB.NET&lt;br /&gt;&lt;%--&lt;br /&gt;&lt;button runat="server" id="myButton" onserverclick="Click"&gt;Click&lt;br /&gt;Me&lt;/button&gt;&lt;br /&gt;&lt;% Title = "New Title" %&gt;&lt;br /&gt;--%&gt;&lt;br /&gt;Now, the ASP.NET runtime will ignore the contents of this comment, and the&lt;br /&gt;value of the Title variable will not be changed.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 38&lt;br /&gt;Chapter 2: ASP.NET Basics&lt;br /&gt;Server-Side Include Directives&lt;br /&gt;Server-side include directives enable developers to insert the contents of an external&lt;br /&gt;file anywhere within an ASP.NET page. In the past, developers used serverside&lt;br /&gt;includes when inserting connection strings, constants, and other code that&lt;br /&gt;was generally repeated throughout the entire site.&lt;br /&gt;There are two ways your server-side includes can indicate the external file to include:&lt;br /&gt;using either the file or the virtual attribute. If we use file, we specify&lt;br /&gt;its filename as the physical path on the server, either as an absolute path starting&lt;br /&gt;from a drive letter, or as a path relative to the current file. Below, we see a file&lt;br /&gt;server-side include with a relative path:&lt;br /&gt;&lt;!-- #INCLUDE file="myinclude.aspx" --&gt;&lt;br /&gt;virtual server-side includes, on the other hand, specify the file’s location on the&lt;br /&gt;Website, either with an absolute path from the root of the site, or with a path&lt;br /&gt;relative to the current page. The example below uses an absolute virtual path:&lt;br /&gt;&lt;!-- #INCLUDE virtual="/directory1/myinclude.aspx" --&gt;&lt;br /&gt;Note that although server-side includes are still supported by ASP.NET, they&lt;br /&gt;have been replaced by a more robust and flexible model known as user controls.&lt;br /&gt;Discussed in Chapter 16, user controls allow for developers to create a separate&lt;br /&gt;page or module that can be inserted into any page within an ASP.NET application.&lt;br /&gt;Literal Text and HTML Tags&lt;br /&gt;The final element of an ASP.NET page is plain old text and HTML . Generally,&lt;br /&gt;you cannot do without these elements, and HTML is the means for displaying&lt;br /&gt;the information from your ASP.NET controls and code in a way that’s suitable&lt;br /&gt;for the user. Returning to the example in Figure 2.1 one more time, let’s focus&lt;br /&gt;on the literal text and HTML tags:&lt;br /&gt;VB.NET&lt;br /&gt;&lt;%@ Page Language="VB" %&gt;&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;title&gt;Sample Page&lt;/title&gt;&lt;br /&gt;&lt;script runat="server"&gt;&lt;br /&gt;Sub ShowMessage(s As Object, e As EventArgs)&lt;br /&gt;lblMessage.Text = "Hello World"&lt;br /&gt;39 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Server-Side Include Directives&lt;br /&gt;End Sub&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;%-- Declare the title as string and set it --%&gt;&lt;br /&gt;&lt;asp:label id="lblMessage" runat="server"&gt;&lt;br /&gt;&lt;% Dim Title As String = "Zak Ruvalcaba's Book List" %&gt;&lt;br /&gt;&lt;%= Title %&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;As you can see in the bold code, literal text and HTML tags provide the structure&lt;br /&gt;for presenting our dynamic data. Without them, there would be no format to&lt;br /&gt;the page, and the browser would be unable to understand it.&lt;br /&gt;Now you should understand what the structure of an ASP.NET page looks like.&lt;br /&gt;As you work through the examples in this book, you’ll begin to realize that in&lt;br /&gt;many cases you won’t need to use all these elements. For the most part, all of&lt;br /&gt;your development will be modularized within code declaration blocks. All of the&lt;br /&gt;dynamic portions of your pages will be contained within code render blocks or&lt;br /&gt;controls located inside a &lt;form runat="server"&gt; tag.&lt;br /&gt;In the following sections, we’ll outline the various languages used within ASP.NET,&lt;br /&gt;talk a little about view state, and look at working with directives in more detail.&lt;br /&gt;View State&lt;br /&gt;As I mentioned briefly in the previous section, ASP.NET controls automatically&lt;br /&gt;retain their data when a page is sent to the server by a user clicking a submit&lt;br /&gt;button. Microsoft calls this persistence of data view state. In the past, developers&lt;br /&gt;would have to hack a way to remember the item selected in a drop-down menu&lt;br /&gt;or keep the contents of a text box, typically using a hidden form field. This is no&lt;br /&gt;longer the case; ASP.NET pages, once submitted to the server for processing,&lt;br /&gt;automatically retain all information contained within text boxes, items selected&lt;br /&gt;within drop-down menus, radio buttons, and check boxes. Even better, they keep&lt;br /&gt;dynamically generated tags, controls, and text. Consider the following ASP page,&lt;br /&gt;called sample.asp:&lt;br /&gt;Order the print version of this book to get all 700+ pages! 40&lt;br /&gt;Chapter 2: ASP.NET Basics&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;title&gt;Sample Page using VBScript&lt;/title&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form method="post" action="sample.asp"&gt;&lt;br /&gt;&lt;input type="text" name="txtName"&gt;&lt;br /&gt;&lt;input type="Submit" name="btnSubmit" text="Click Me"&gt;&lt;br /&gt;&lt;%&lt;br /&gt;If Request.Form("txtName") &lt;&gt; "" Then&lt;br /&gt;Response.Write(Request.Form("txtName"))&lt;br /&gt;End If&lt;br /&gt;%&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;If you save this example in the WebDocs subdirectory of wwwroot that you created&lt;br /&gt;in Chapter 1, you can open it in your browser by typing&lt;br /&gt;http://localhost/WebDocs/sample.asp, to see that view state is not automatically&lt;br /&gt;preserved. When the user submits the form, the information that was previously&lt;br /&gt;typed into the text box is cleared, although it is still available in Request.&lt;br /&gt;Form("txtName"). The equivalent page in ASP.NET, ViewState.aspx,&lt;br /&gt;demonstrates data persistence using view state:&lt;br /&gt;VB.NET File: ViewState.aspx&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;title&gt;Sample Page using VB.NET&lt;/title&gt;&lt;br /&gt;&lt;script runat="server" language="VB"&gt;&lt;br /&gt;Sub Click(s As Object, e As EventArgs)&lt;br /&gt;lblMessage.Text = txtName.Text&lt;br /&gt;End Sub&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;asp:textbox id="txtName" runat="server"&gt;&lt;br /&gt;&lt;asp:Button id="btnSubmit" Text="Click Me" OnClick="Click"&lt;br /&gt;runat="server" /&gt;&lt;br /&gt;&lt;asp:label id="lblMessage" runat="server"&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;41 Order the print version of this book to get all 700+ pages!&lt;br /&gt;View State&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;C# File: ViewState.aspx&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;title&gt;Sample Page using C#&lt;/title&gt;&lt;br /&gt;&lt;script runat="server" language="C#"&gt;&lt;br /&gt;void Click(Object s, EventArgs e) {&lt;br /&gt;lblMessage.Text = txtName.Text;&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;asp:textbox id="txtName" runat="server"&gt;&lt;br /&gt;&lt;asp:Button id="btnSubmit" Text="Click Me" OnClick="Click"&lt;br /&gt;runat="server" /&gt;&lt;br /&gt;&lt;asp:label id="lblMessage" runat="server"&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;In this case, the code uses ASP.NET controls with the runat="server" attribute.&lt;br /&gt;As you can see in Figure 2.2, the text from the box appears on the page when the&lt;br /&gt;button is clicked, but also notice that the data remains in the text box! The data&lt;br /&gt;in this example is preserved because of view state:&lt;br /&gt;Figure 2.2. ASP.NET supports view state. When a page is&lt;br /&gt;submitted, the information within the controls is preserved.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 42&lt;br /&gt;Chapter 2: ASP.NET Basics&lt;br /&gt;You can see the benefits of view state already. But where is all that information&lt;br /&gt;stored? ASP.NET pages maintain view state by encrypting the data within a&lt;br /&gt;hidden form field. View the source of the page after you’ve submitted the form,&lt;br /&gt;and look for the following code:&lt;br /&gt;&lt;input type="hidden" name="__VIEWSTATE" value="dDwtMTcyOTAyO&lt;br /&gt;DAwNzt0PDtsPGk8Mj47PjtsPHQ8O2w8aTwzPjs+O2w8dDxwPGw8aW5uZXJodG&lt;br /&gt;1sOz47bDxIZWxsbyBXb3JsZDs+Pjs7Pjs+Pjs+Pjs+d2wl7GlhgweO9LlUihS&lt;br /&gt;FaGxk6t4=" /&gt;&lt;br /&gt;This is a standard HTML hidden form field with the value set to the encrypted&lt;br /&gt;data from the form element. As soon as you submit the form for processing, all&lt;br /&gt;information relevant to the view state of the page is stored within this hidden&lt;br /&gt;form field.&lt;br /&gt;View state is enabled for every page by default. If you do not intend to use view&lt;br /&gt;state, you can turn it off, which will result in a slight performance gain in your&lt;br /&gt;pages. To do this, set the EnableViewState property of the Page directive to&lt;br /&gt;false:&lt;br /&gt;&lt;%@ Page EnableViewState="False" %&gt;&lt;br /&gt;Speaking of directives, it’s time we took a closer look at these curious beasts!&lt;br /&gt;Working With Directives&lt;br /&gt;For the most part, ASP.NET pages resemble traditional HTML pages, with a few&lt;br /&gt;additions. In essence, just using an extension like .aspx on an HTML file will&lt;br /&gt;make the .NET Framework process the page. However, before you can work with&lt;br /&gt;certain, more advanced features, you will need to know how to use directives.&lt;br /&gt;We’ve already talked a little about directives and what they can do earlier in this&lt;br /&gt;chapter. You learned that directives control how a page is created, specify settings&lt;br /&gt;when navigating between pages, aid in finding errors, and allow you to import&lt;br /&gt;advanced functionality to use within your code. Three of the most commonly&lt;br /&gt;used directives are:&lt;br /&gt;Page Defines page-specific attributes for the ASP.NET page, such as&lt;br /&gt;the language used.&lt;br /&gt;Import Makes functionality defined elsewhere available in a page&lt;br /&gt;through the use of namespaces. You will become very familiar&lt;br /&gt;with this directive as you progress through this book.&lt;br /&gt;43 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Working With Directives&lt;br /&gt;Register Asyou will see in Chapter 16, you would use this directive to&lt;br /&gt;link a user control to the ASP.NET page.&lt;br /&gt;You will become very familiar with these three directives, as they’re the ones that&lt;br /&gt;we’ll be using the most in this book. You’ve already seen the Page directive in&lt;br /&gt;use. The Import directive imports extra functionality for use within your application&lt;br /&gt;logic. The following example, for instance, imports the Mail class, which&lt;br /&gt;you could use to send email from a page:&lt;br /&gt;&lt;%@ Import Namespace="System.Web.Mail" %&gt;&lt;br /&gt;The Register directive allows you to register a user control for use on your&lt;br /&gt;page. We’ll cover these in Chapter 16, but the directive looks something like this:&lt;br /&gt;&lt;%@ Register TagPrefix="uc" TagName="footer" Src="footer.ascx" %&gt;&lt;br /&gt;ASP.NET Languages&lt;br /&gt;As we saw in the previous chapter, .NET currently supports many different languages&lt;br /&gt;and there is no limit to the number of languages that could be made&lt;br /&gt;available. If you’re used to writing ASP, you may think the choice of VBScript&lt;br /&gt;would be obvious. With ASP.NET however, Microsoft has done away with VBScript&lt;br /&gt;and replaced it with a more robust and feature-rich alternative: VB.NET.&lt;br /&gt;ASP.NET’s support for C# is likely to find favor with developers from other&lt;br /&gt;backgrounds. This section will introduce you to both these new languages, which&lt;br /&gt;are used throughout the remainder of the book. By the end of this section, you&lt;br /&gt;will, I hope, agree that the similarities between the two are astonishing—any&lt;br /&gt;differences are minor and, in most cases, easy to figure out.&lt;br /&gt;Traditional server technologies are much more constrained in the choice of development&lt;br /&gt;language they offer. For instance, old-style CGI scripts were typically&lt;br /&gt;written with Perl or C/C++, JSP uses Java, Coldfusion uses CFML, and PHP is&lt;br /&gt;a language in and of itself. .NET’s support for many different languages lets developers&lt;br /&gt;choose based on what they’re familiar with, and start from there. To&lt;br /&gt;keep things simple, in this book we’ll consider the two most popular, VB.NET&lt;br /&gt;and C#, giving you a chance to choose which feels more comfortable to you, or&lt;br /&gt;stick with your current favorite if you have one.&lt;br /&gt;VB.NET&lt;br /&gt;Visual Basic.NET or VB.NET is the result of a dramatic overhaul of Microsoft’s&lt;br /&gt;hugely popular Visual Basic language. With the inception of Rapid Application&lt;br /&gt;Order the print version of this book to get all 700+ pages! 44&lt;br /&gt;Chapter 2: ASP.NET Basics&lt;br /&gt;Development (RAD) in the nineties, Visual Basic became extremely popular,&lt;br /&gt;allowing inhouse teams and software development shops to bang out applications&lt;br /&gt;two-to-the-dozen. VB.NET has many new features over older versions of VB,&lt;br /&gt;most notably that it has now become a fully object-oriented language. At last, it&lt;br /&gt;can call itself a true programming language on a par with the likes of Java and&lt;br /&gt;C++. Despite the changes, VB.NET generally stays close to the structured, legible&lt;br /&gt;syntax that has always made it so easy to read, use, and maintain.&lt;br /&gt;C#&lt;br /&gt;The official line is that Microsoft created C# in an attempt to produce a programming&lt;br /&gt;language that coupled the simplicity of Visual Basic with the power and&lt;br /&gt;flexibility of C++. However, there’s little doubt that its development was at least&lt;br /&gt;hurried along. Following legal disputes with Sun about Microsoft’s treatment&lt;br /&gt;(some would say abuse) of Java, Microsoft was forced to stop developing its own&lt;br /&gt;version of Java, and instead developed C# and another language, which it calls&lt;br /&gt;J#. We’re not going to worry about J# here, as C# is preferable. It’s easy to read,&lt;br /&gt;use, and maintain, because it does away with much of the confusing syntax for&lt;br /&gt;which C++ became infamous.&lt;br /&gt;Summary&lt;br /&gt;In this chapter, we started out by introducing key aspects of an ASP.NET page&lt;br /&gt;including directives, code declaration blocks, code render blocks, includes, comments,&lt;br /&gt;and controls. As the chapter progressed, you were introduced to the two&lt;br /&gt;most popular languages that ASP.NET supports, which we’ll use throughout the&lt;br /&gt;book.&lt;br /&gt;In the next chapter, we’ll create more ASP.NET pages to demonstrate some form&lt;br /&gt;processing techniques and programming basics, before we finally dive in and look&lt;br /&gt;at object oriented programming for the Web.&lt;br /&gt;45 Order the print version of this book to get all 700+ pages!&lt;br /&gt;C#&lt;br /&gt;46&lt;br /&gt;VB.NET and C# Programming&lt;br /&gt;Basics 3&lt;br /&gt;As you learned at the end of the last chapter, one of the great things about&lt;br /&gt;ASP.NET is that we can pick and choose which of the various .NET languages&lt;br /&gt;we like. In this chapter, we’ll look at some key programming principles using our&lt;br /&gt;two chosen languages, VB.NET and C#. We’ll start off with a run-down of some&lt;br /&gt;basic programming concepts as they relate to ASP.NET using both languages.&lt;br /&gt;We’ll introduce programming fundamentals such as control and page events,&lt;br /&gt;variables, arrays, functions, operators, conditionals, and loops. Next, we’ll dive&lt;br /&gt;into namespaces and address the topic of classes—how they’re exposed through&lt;br /&gt;namespaces, and which you’ll use most often.&lt;br /&gt;The final sections of the chapter cover some of the ideas underlying modern, effective&lt;br /&gt;ASP.NET design, starting with that of code-behind and the value it&lt;br /&gt;provides by helping us separate code from presentation. We finish with an examination&lt;br /&gt;of how object-oriented programming techniques impact the ASP.NET&lt;br /&gt;developer.&lt;br /&gt;Programming Basics&lt;br /&gt;One of the building blocks of an ASP.NET page is the application logic: the actual&lt;br /&gt;programming code that allows the page to function. To get anywhere with&lt;br /&gt;this, you need to grasp the concept of events. All ASP.NET pages will contain&lt;br /&gt;controls, such as text boxes, check boxes, lists, and more, each of these controls&lt;br /&gt;allowing the user to interact with it in some way. Check boxes can be checked,&lt;br /&gt;lists can be scrolled, items on them selected, and so on. Now, whenever one of&lt;br /&gt;these actions is performed, the control will raise an event. It is by handling these&lt;br /&gt;events with code that we get our ASP.NET pages to do what we want.&lt;br /&gt;For instance, say a user clicks a button on an ASP.NET page. That button (or,&lt;br /&gt;strictly, the ASP.NET Button control) raises an event (in this case it will be the&lt;br /&gt;Click event). When the ASP.NET runtime registers this event, it calls any code&lt;br /&gt;we have written to handle it. We would use this code to perform whatever action&lt;br /&gt;that button was supposed to perform, for instance, to save form data to a file, or&lt;br /&gt;retrieve requested information from a database. Events really are key to ASP.NET&lt;br /&gt;programming, which is why we’ll start by taking a closer look at them. Then,&lt;br /&gt;there’s the messy business of writing the actual handler code, which means we&lt;br /&gt;need to check out some common programming techniques in the next sections.&lt;br /&gt;Specifically, we’re going to cover the following areas:&lt;br /&gt; Control events and handlers&lt;br /&gt; Page events&lt;br /&gt; Variables and variable declaration&lt;br /&gt; Arrays&lt;br /&gt; Functions&lt;br /&gt; Operators&lt;br /&gt; Conditionals&lt;br /&gt; Loops&lt;br /&gt;It wouldn’t be practical, or even necessary, to cover all aspects of VB.NET and&lt;br /&gt;C# in this book, so we’re going to cover enough to get you started, completing&lt;br /&gt;the projects and samples using both languages. Moreover, I’d say that the programming&lt;br /&gt;concepts you’ll learn here will be more than adequate to complete the&lt;br /&gt;great majority of day-to-day Web development tasks using ASP.NET.&lt;br /&gt;Control Events and Subroutines&lt;br /&gt;As I just mentioned, an event (sometimes more than one) is raised, and handler&lt;br /&gt;code is called, in response to a specific action on a particular control. For instance,&lt;br /&gt;Order the print version of this book to get all 700+ pages! 48&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt;the code below creates a server-side button and label. Note the use of the OnClick&lt;br /&gt;attribute on the Button control:&lt;br /&gt;File: ClickEvent.aspx (excerpt)&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;asp:Button id="btn1" runat="server" OnClick="btn1_Click"&lt;br /&gt;Text="Click Me" /&gt;&lt;br /&gt;&lt;asp:label id="lblMessage" runat="server"&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;When the button is clicked, it raises the Click event, and ASP.NET checks the&lt;br /&gt;OnClick attribute to find the name of the handler subroutine for that event.&lt;br /&gt;Here, we tell ASP.NET to call the btn1_Click() routine. So now we have to&lt;br /&gt;write this subroutine, which we would normally place within a code declaration&lt;br /&gt;block inside the &lt;head&gt; tag, like this:&lt;br /&gt;VB.NET File: ClickEvent.aspx (excerpt)&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;script runat="server" language="VB"&gt;&lt;br /&gt;Public Sub btn1_Click(s As Object, e As EventArgs)&lt;br /&gt;lblMessage.Text = "Hello World"&lt;br /&gt;End Sub&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;C# File: ClickEvent.aspx (excerpt)&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;script runat="server" language="C#"&gt;&lt;br /&gt;public void btn1_Click(Object s, EventArgs e) {&lt;br /&gt;lblMessage.Text = "Hello World";&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;This code simply sets a message to display on the label that we also declared with&lt;br /&gt;the button. So, when this page is run and users click the button, they’ll see the&lt;br /&gt;message "Hello World" appear next to it.&lt;br /&gt;I hope you can now start to come to grips with the idea of control events and&lt;br /&gt;how they’re used to call particular subroutines. In fact, there are many events&lt;br /&gt;that your controls can use, some of which are only found on certain controls—not&lt;br /&gt;others. Here’s the complete set of attributes the Button control supports for&lt;br /&gt;handling events:&lt;br /&gt;49 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Control Events and Subroutines&lt;br /&gt;OnClick As we’ve seen, the subroutine indicated by this attribute&lt;br /&gt;is called for the Click event, which occurs when&lt;br /&gt;the user clicks the button.&lt;br /&gt;OnCommand As with OnClick, the subroutine indicated by this attribute&lt;br /&gt;is called when the button is clicked.&lt;br /&gt;OnLoad The subroutine indicated by this attribute is called&lt;br /&gt;when the button is loaded for the first time—generally&lt;br /&gt;when the page first loads.&lt;br /&gt;OnInit When the button is initialized, any subroutine given&lt;br /&gt;in this attribute will be called.&lt;br /&gt;OnPreRender We can run code just before the button is rendered,&lt;br /&gt;using this attribute.&lt;br /&gt;OnUnload This subroutine will run when the control is unloaded&lt;br /&gt;from memory—basically, when the user goes to a different&lt;br /&gt;page or closes the browser entirely.&lt;br /&gt;OnDisposed This occurs when the button is released from memory.&lt;br /&gt;OnDataBinding This fires when the button is bound to a data source.&lt;br /&gt;Don’t worry too much about the intricacies of all these events and when they&lt;br /&gt;happen; I just want you to understand that a single control can produce a number&lt;br /&gt;of different events. In the case of the Button control, you’ll almost always be interested&lt;br /&gt;in the Click event, as the others are only useful in rather obscure circumstances.&lt;br /&gt;When a control raises an event, the specified subroutine (if there is one) is executed.&lt;br /&gt;Let’s now take a look at the structure of a typical subroutine that interacts&lt;br /&gt;with a Web control:&lt;br /&gt;VB.NET&lt;br /&gt;Public Sub mySubName(s As Object, e As EventArgs)&lt;br /&gt;' Write your code here&lt;br /&gt;End Sub&lt;br /&gt;C#&lt;br /&gt;public void mySubName(Object s, EventArgs e) {&lt;br /&gt;// Write your code here&lt;br /&gt;}&lt;br /&gt;Order the print version of this book to get all 700+ pages! 50&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt;Let’s break down all the components that make up a typical subroutine:&lt;br /&gt;Public Defines the scope of the subroutine. There are a few&lt;br /&gt;different options to choose from, the most frequently public&lt;br /&gt;used being Public (for a global subroutine that can&lt;br /&gt;be used anywhere within the entire page) and Private&lt;br /&gt;(for subroutines that are available for the specific class&lt;br /&gt;only). If you don’t yet understand the difference, your&lt;br /&gt;best bet is to stick with Public for now.&lt;br /&gt;Sub Defines the chunk of code as a subroutine. A subroutine&lt;br /&gt;is a named block of code that doesn’t return void&lt;br /&gt;a result; thus, in C#, we use the void keyword, which&lt;br /&gt;means exactly that. We don’t need this in VB.NET,&lt;br /&gt;because the Sub keyword already implies that no value&lt;br /&gt;is returned.&lt;br /&gt;mySubName(…) This part gives the name we’ve chosen for the subroutine.&lt;br /&gt;s As Object When we write a subroutine that will function as an&lt;br /&gt;event handler, it must accept two parameters. The Object s&lt;br /&gt;first is the control that generated the event, which is&lt;br /&gt;an Object. Here, we are putting that Object in a&lt;br /&gt;variable named s (more on variables later in this&lt;br /&gt;chapter). We can then access features and settings of&lt;br /&gt;the specific control from our subroutine using the&lt;br /&gt;variable.&lt;br /&gt;e As EventArgs The second parameter contains certain information&lt;br /&gt;specific to the event that was raised. Note that, in EventArgs e&lt;br /&gt;many cases, you won’t need to use either of these two&lt;br /&gt;parameters, so you don’t need to worry about them&lt;br /&gt;too much at this stage.&lt;br /&gt;As this chapter progresses, you’ll see how subroutines associated with particular&lt;br /&gt;events by the appropriate attributes on controls can revolutionize the way your&lt;br /&gt;user interacts with your application.&lt;br /&gt;51 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Control Events and Subroutines&lt;br /&gt;Page Events&lt;br /&gt;Until now, we’ve considered only events that are raised by controls. However,&lt;br /&gt;there is another type of event—the page event. The idea is the same as for control&lt;br /&gt;events1, except that here, it is the page as a whole that generates the events.&lt;br /&gt;You’ve already used one of these events: the Page_Load event. This event is fired&lt;br /&gt;when the page loads for the first time. Note that we don’t need to associate&lt;br /&gt;handlers for page events the way we did for control events; instead, we just place&lt;br /&gt;our handler code inside a subroutine with a preset name. The following list outlines&lt;br /&gt;the page event subroutines that are available:&lt;br /&gt;Page_Init Called when the page is about to be initialized with&lt;br /&gt;its basic settings&lt;br /&gt;Page_Load Called once the browser request has been processed,&lt;br /&gt;and all of the controls in the page have their updated&lt;br /&gt;values.&lt;br /&gt;Page_PreRender Called once all objects have reacted to the browser&lt;br /&gt;request and any resulting events, but before any response&lt;br /&gt;has been sent to the browser.&lt;br /&gt;Page_UnLoad Called when the page is no longer needed by the&lt;br /&gt;server, and is ready to be discarded.&lt;br /&gt;The order in which the events are listed above is also the order in which they’re&lt;br /&gt;executed. In other words, the Page_Init event is the first event raised by the&lt;br /&gt;page, followed by Page_Load, Page_PreRender, and finally Page_UnLoad.&lt;br /&gt;The best way to illustrate the Page_Load event is through an example:&lt;br /&gt;VB.NET File: PageEvents.aspx (excerpt)&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;script runat="server" language="VB"&gt;&lt;br /&gt;Sub Page_Load(s As Object, e As EventArgs)&lt;br /&gt;lblMessage.Text = "Hello World"&lt;br /&gt;End Sub&lt;br /&gt;1Strictly speaking, a page is simply another type of control, and so page events are actually control&lt;br /&gt;events. When you’re first coming to grips with ASP.NET, however, it can help to think of them differently,&lt;br /&gt;especially since you don’t usually use OnEventName attributes to assign subroutines to&lt;br /&gt;handle them.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 52&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;asp:label id="lblMessage" runat="server"&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;C# File: PageEvents.aspx (excerpt)&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;script runat="server" language="C#"&gt;&lt;br /&gt;void Page_Load(Object s, EventArgs e) {&lt;br /&gt;lblMessage.Text = "Hello World";&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;asp:label id="lblMessage" runat="server"&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;You can see that the control on the page does not specify any event handlers.&lt;br /&gt;There’s no need, because we’re using the special Page_Load subroutine, which&lt;br /&gt;will be called when the page loads. As the page loads, it will call the Page_Load&lt;br /&gt;routine, to display “Hello World” in the Label control, as shown in Figure 3.1.&lt;br /&gt;53 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Page Events&lt;br /&gt;Figure 3.1. The Page_Load event is raised, the subroutine is called,&lt;br /&gt;and the code within the subroutine is executed.&lt;br /&gt;Variables and Variable Declaration&lt;br /&gt;Variables are fundamental to programming, and you’ve almost certainly come&lt;br /&gt;across the term before. Basically, they let you give a name, or identifier, to a&lt;br /&gt;piece of data; we can then use that identifier to store, modify, and retrieve the&lt;br /&gt;data.&lt;br /&gt;However, there are, of course, many different kinds of data, such as strings, integers&lt;br /&gt;(whole numbers), and floating point numbers (fractions or decimals). Before&lt;br /&gt;you can use a variable in VB.NET or C#, you must specify what type of data it&lt;br /&gt;can contain, using keywords such as String, Integer, Decimal, and so on, like&lt;br /&gt;this:&lt;br /&gt;VB.NET&lt;br /&gt;Dim strName As String&lt;br /&gt;Dim intAge As Integer&lt;br /&gt;Order the print version of this book to get all 700+ pages! 54&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt;C#&lt;br /&gt;string strName;&lt;br /&gt;int intAge;&lt;br /&gt;These lines declare what type of data we want our variables to store, and are&lt;br /&gt;therefore known as variable declarations. In VB.NET, we use the keyword Dim,&lt;br /&gt;which stands for “dimension”, while in C#, we simply precede the variable name&lt;br /&gt;with the appropriate data type.&lt;br /&gt;Sometimes, we want to set an initial value for variables that we declare; we can&lt;br /&gt;do this using a process known as initialization:&lt;br /&gt;VB.NET&lt;br /&gt;Dim strCarType As String = "BMW"&lt;br /&gt;C#&lt;br /&gt;string strCarType = "BMW";&lt;br /&gt;We can also declare and/or initialize a group of variables of the same type all at&lt;br /&gt;once:&lt;br /&gt;VB.NET&lt;br /&gt;Dim strCarType As String, strCarColor = "blue", strCarModel&lt;br /&gt;C#&lt;br /&gt;string strCarType, strCarColor = "blue", strCarModel;&lt;br /&gt;Table 3.1 below lists the most useful data types available in VB.NET and C#.&lt;br /&gt;55 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Variables and Variable Declaration&lt;br /&gt;Table 3.1. A List of the Commonly Used Data Types&lt;br /&gt;Description C# VB.NET&lt;br /&gt;Whole numbers in the range -2,147,483,648 to&lt;br /&gt;2,147,483,647.&lt;br /&gt;int Integer&lt;br /&gt;Up to 28 decimal places. You’ll use decimal most&lt;br /&gt;often when dealing with costs of items.&lt;br /&gt;decimal Decimal&lt;br /&gt;Any text value. string String&lt;br /&gt;A single character (letter, number, or symbol). char Char&lt;br /&gt;True or false. bool Boolean&lt;br /&gt;In .NET, all types are ultimately a type of object,&lt;br /&gt;and so variables of this type can hold just about&lt;br /&gt;any kind of data.&lt;br /&gt;Object Object&lt;br /&gt;There are many more data types that you may encounter as you progress, but&lt;br /&gt;this list provides an idea of the ones you’ll use most often.&lt;br /&gt;So, to sum up, once you’ve declared a variable as a given type, it can only hold&lt;br /&gt;data of that type. You can’t put a string into an integer variable, for instance.&lt;br /&gt;However, there are frequently times when you’ll need to convert one data type&lt;br /&gt;to another. Have a look at this code:&lt;br /&gt;VB.NET&lt;br /&gt;Dim intX As Integer&lt;br /&gt;Dim strY As String = "35"&lt;br /&gt;intX = strY + 6&lt;br /&gt;C#&lt;br /&gt;int intX;&lt;br /&gt;String strY = "35";&lt;br /&gt;intX = strY + 6;&lt;br /&gt;Now, while you or I might think that this could make sense—after all, the string&lt;br /&gt;strY does contain a number, so we may well wish to add it to another number—the&lt;br /&gt;computer will not be happy, and we’ll get an error. What we have to do is explicitly&lt;br /&gt;convert, or cast, the string into an integer first:&lt;br /&gt;VB.NET&lt;br /&gt;Dim intX As Integer&lt;br /&gt;Dim strY As String = "35"&lt;br /&gt;intX = Int32.Parse(strY) + 6&lt;br /&gt;Order the print version of this book to get all 700+ pages! 56&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt;C#&lt;br /&gt;int intX;&lt;br /&gt;String strY = "35";&lt;br /&gt;intX = Convert.ToInt32(strY) + 6;&lt;br /&gt;Now, the computer will be happy, as we’ve told it that we want to turn the string&lt;br /&gt;into an integer before it’s used as one. This same principle holds true when mixing&lt;br /&gt;other types in a single expression.&lt;br /&gt;Arrays&lt;br /&gt;Arrays are a special variety of variable tailored for storing related items of the&lt;br /&gt;same data type. Any one item in an array can be accessed using the array’s name,&lt;br /&gt;followed by that item’s position in the array (its offset). Let’s create a sample&lt;br /&gt;page to show what I mean:&lt;br /&gt;VB.NET File: Arrays.aspx&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;script runat="server" language="VB"&gt;&lt;br /&gt;Sub Page_Load()&lt;br /&gt;' Declare an array&lt;br /&gt;Dim drinkList(4) As String&lt;br /&gt;' Place some items in it&lt;br /&gt;drinkList(0) = "Water"&lt;br /&gt;drinkList(1) = "Juice"&lt;br /&gt;drinkList(2) = "Soda"&lt;br /&gt;drinkList(3) = "Milk"&lt;br /&gt;' The line below accesses an item in the array by its position&lt;br /&gt;lblArrayList.Text = drinkList(1)&lt;br /&gt;End Sub&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;asp:label id="lblArrayList" runat="server"&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;57 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Arrays&lt;br /&gt;C# File: Arrays.aspx&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;script runat="server" language="C#"&gt;&lt;br /&gt;void Page_Load() {&lt;br /&gt;// Declare an array&lt;br /&gt;String[] drinkList = new String[4];&lt;br /&gt;// Place some items in it&lt;br /&gt;drinkList[0] = "Water";&lt;br /&gt;drinkList[1] = "Juice";&lt;br /&gt;drinkList[2] = "Soda";&lt;br /&gt;drinkList[3] = "Milk";&lt;br /&gt;// The line below accesses an item in the array by its position&lt;br /&gt;lblArrayList.Text = drinkList[1];&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;asp:label id="lblArrayList" runat="server"&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;There are some important points to pick up from this code. First, notice how we&lt;br /&gt;declare an array. In VB.NET, it looks like a regular declaration for a string, except&lt;br /&gt;that the number of items we want the array to contain is given in brackets after&lt;br /&gt;the name:&lt;br /&gt;VB.NET File: Arrays.aspx (excerpt)&lt;br /&gt;Dim drinkList(4) As String&lt;br /&gt;In C#, it’s a little different. First, we declare that drinkList is an array by following&lt;br /&gt;the datatype with two empty square brackets. We must then specify that&lt;br /&gt;this is an array of four items, using the new keyword:&lt;br /&gt;C# File: Arrays.aspx (excerpt)&lt;br /&gt;String[] drinkList = new String[4];&lt;br /&gt;A crucial point to realize here is that the arrays in both C# and VB.NET are&lt;br /&gt;what are known as zero-based arrays. This means that the first item actually has&lt;br /&gt;Order the print version of this book to get all 700+ pages! 58&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt;position 0, the second has position 1, and so on, through to the last item, which&lt;br /&gt;will have a position that’s one less than the size of the array (3, in this case). So,&lt;br /&gt;we specify each item in our array like this:&lt;br /&gt;VB.NET File: Arrays.aspx (excerpt)&lt;br /&gt;drinkList(0) = "Water"&lt;br /&gt;drinkList(1) = "Juice"&lt;br /&gt;drinkList(2) = "Soda"&lt;br /&gt;drinkList(3) = "Milk"&lt;br /&gt;C# File: Arrays.aspx (excerpt)&lt;br /&gt;drinkList[0] = "Water";&lt;br /&gt;drinkList[1] = "Juice";&lt;br /&gt;drinkList[2] = "Soda";&lt;br /&gt;drinkList[3] = "Milk";&lt;br /&gt;Notice that C# uses square brackets for arrays, while VB.NET uses standard&lt;br /&gt;parentheses. We have to remember that arrays are zero-based when we set the&lt;br /&gt;label text to the second item, as shown here:&lt;br /&gt;VB.NET File: Arrays.aspx (excerpt)&lt;br /&gt;lblArrayList.Text = drinkList(1)&lt;br /&gt;C# File: Arrays.aspx (excerpt)&lt;br /&gt;lblArrayList.Text = drinkList[1];&lt;br /&gt;To help this sink in, you might like to try changing this code to show the third&lt;br /&gt;item in the list instead of the second. Can you work out what change you’d need&lt;br /&gt;to make?&lt;br /&gt;That’s right—you only need to change the number given in the brackets to match&lt;br /&gt;the position of the new item (don’t forget to start at zero). In fact, it’s this ability&lt;br /&gt;to select one item from a list using only its numerical location that makes arrays&lt;br /&gt;so useful in programming, as we’ll see as we get further into the book.&lt;br /&gt;Functions&lt;br /&gt;Functions are exactly the same as subroutines, but for one key difference: they&lt;br /&gt;return a value. In VB.NET, we declare a function using the Function keyword&lt;br /&gt;in place of Sub, while, in C#, we simply have to specify the return type in place&lt;br /&gt;of using void. The following code shows a simple example:&lt;br /&gt;59 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Functions&lt;br /&gt;VB.NET File: Functions.aspx&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;script runat="server" language="VB"&gt;&lt;br /&gt;' Here's our function&lt;br /&gt;Function getName() as String&lt;br /&gt;Return "Zak Ruvalcaba"&lt;br /&gt;End Function&lt;br /&gt;' And now we'll use it in the Page_Load handler&lt;br /&gt;Sub Page_Load(s As Object, e As EventArgs)&lt;br /&gt;lblMessage.Text = getName()&lt;br /&gt;End Sub&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;asp:label id="lblMessage" runat="server"&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;C# File: Functions.aspx&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;script runat="server" language="C#"&gt;&lt;br /&gt;// Here's our function&lt;br /&gt;string getName() {&lt;br /&gt;return "Zak Ruvalcaba";&lt;br /&gt;}&lt;br /&gt;// And now we'll use it in the Page_Load handler&lt;br /&gt;void Page_Load() {&lt;br /&gt;lblMessage.Text = getName();&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;asp:label id="lblMessage" runat="server"&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;Order the print version of this book to get all 700+ pages! 60&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;Figure 3.2 shows the result in the browser.&lt;br /&gt;Figure 3.2. The Page_Load event is raised, the function is called,&lt;br /&gt;and the code within the function is executed.&lt;br /&gt;Here’s what’s happening: the line in our Page_Load subroutine calls our function,&lt;br /&gt;which returns a simple string that we can then assign to our label. I hope this illustrates&lt;br /&gt;what functions are about and how you can use them. In this simple example,&lt;br /&gt;we’re merely returning a fixed string (my name), but the function could&lt;br /&gt;just as well retrieve the name from a database—or somewhere else. The point is&lt;br /&gt;that, regardless of how the function gets its data, we use it (that is, call it) in just&lt;br /&gt;the same way.&lt;br /&gt;61 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Functions&lt;br /&gt;When we’re declaring our function, we must remember to specify the correct&lt;br /&gt;return type. Take a look at the following code:&lt;br /&gt;VB.NET&lt;br /&gt;' Here's our function&lt;br /&gt;Function addUp(x As Integer, y As Integer) As Integer&lt;br /&gt;Return x + y&lt;br /&gt;End Function&lt;br /&gt;' And now we use it in Page_Load&lt;br /&gt;Sub Page_Load(s As Object, e As EventArgs)&lt;br /&gt;lblMessage.Text = addUp(5, 5).ToString()&lt;br /&gt;End Sub&lt;br /&gt;C#&lt;br /&gt;// Here's our function&lt;br /&gt;int addUp(int x, int y) {&lt;br /&gt;return x + y;&lt;br /&gt;}&lt;br /&gt;// And now we use it in Page_Load&lt;br /&gt;void Page_Load() {&lt;br /&gt;lblMessage.Text = Convert.ToString(addUp(5, 5));&lt;br /&gt;}&lt;br /&gt;You can easily adapt the previous example to use this new code and see the results&lt;br /&gt;in your browser.&lt;br /&gt;Have a look at this code, and see if you can spot what’s different and why. The&lt;br /&gt;first thing you might notice is that our function now accepts parameters. Any&lt;br /&gt;function or subroutine can take any number of parameters, each of any type&lt;br /&gt;(there’s no need for parameter types to match the return type—that’s just coincidental&lt;br /&gt;in this example).&lt;br /&gt;We can then readily use the parameters inside the function or subroutine just&lt;br /&gt;by using the names we gave them in the function declaration (here, we’ve chosen&lt;br /&gt;x and y, but we could have chosen different names).&lt;br /&gt;The other difference between this and the function declaration we had before is&lt;br /&gt;that we now declare our function with a return type of Integer or int, rather&lt;br /&gt;than String, because we want it to return a whole number.&lt;br /&gt;When we now call the new function, we simply have to specify the required&lt;br /&gt;number of parameters, and remember that the function will return a value with&lt;br /&gt;Order the print version of this book to get all 700+ pages! 62&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt;the type we specified. In this case, that means we have to convert the integer&lt;br /&gt;value it returns to a string, so we can assign it to the label.&lt;br /&gt;In VB.NET, we tack .ToString() onto the end of the function call, while in C#&lt;br /&gt;we use the Convert.ToString(…). Note the differences in how these two methods&lt;br /&gt;are used—converting numbers to strings is a very common task in ASP.NET, so&lt;br /&gt;it’s good to get a handle on it early. Don’t be too concerned if you’re a little&lt;br /&gt;confused by how these conversions work, though—the syntax will become clear&lt;br /&gt;once we discuss the object oriented concepts involved later in this chapter.&lt;br /&gt;Again, a complete discussion of functions could take up an entire chapter, but I&lt;br /&gt;hope the brief examples here are enough to prepare you for what we’re going to&lt;br /&gt;cover in future chapters. Don’t worry too much if you’re still a bit unsure what&lt;br /&gt;functions and subroutines are all about right now—they’ll become second nature&lt;br /&gt;very quickly.&lt;br /&gt;Operators&lt;br /&gt;Throwing around values with variables and functions isn’t much use unless you&lt;br /&gt;can use them in some meaningful way, and to do this we use operators. An operator&lt;br /&gt;is a symbol that has a certain meaning when applied to values. Don’t&lt;br /&gt;worry—they’re nowhere near as scary as they sound! In fact, in the last example,&lt;br /&gt;when our function added two numbers, we were using an operator—the addition&lt;br /&gt;operator, +. Most of the other available operators are just as well known, although&lt;br /&gt;there are one or two that will probably be new to you. Table 3.2 outlines the&lt;br /&gt;operators that you’ll use most often.&lt;br /&gt;63 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Operators&lt;br /&gt;Table 3.2. ASP.NET Operators&lt;br /&gt;Description C# VB.NET&lt;br /&gt;greater than &gt; &gt;&lt;br /&gt;greater than or equal to &gt;= &gt;=&lt;br /&gt;less than &lt; &lt;&lt;br /&gt;less than or equal to &lt;= &lt;=&lt;br /&gt;not equal to != &lt;&gt;&lt;br /&gt;equals == =&lt;br /&gt;assigns a value to a variable = =&lt;br /&gt;or  Or&lt;br /&gt;and &amp;&amp;amp; And&lt;br /&gt;concatenate strings + &amp;&lt;br /&gt;create object or array New New&lt;br /&gt;multiply * *&lt;br /&gt;divide / /&lt;br /&gt;add + +&lt;br /&gt;subtract - -&lt;br /&gt;The following code uses some of these operators:&lt;br /&gt;VB.NET&lt;br /&gt;If (user = "Zak" And itemsBought &lt;&gt; 0) Then&lt;br /&gt;lblMessage.Text = "Hello Zak! Do you want to proceed to " &amp;amp; _&lt;br /&gt;"checkout?"&lt;br /&gt;End If&lt;br /&gt;C#&lt;br /&gt;if (user == "Zak" &amp;&amp;amp; itemsBought != 0) {&lt;br /&gt;lblMessage.Text = "Hello Zak! Do you want to proceed to " +&lt;br /&gt;"checkout?";&lt;br /&gt;}&lt;br /&gt;Here, we use the equality, inequality (not equals to) and logical ‘and’ operators&lt;br /&gt;in an If statement to print a message only for a given user, and only when he or&lt;br /&gt;she has bought something. Of particular note is C#’s equality operator, ==, which&lt;br /&gt;is used when comparing two values to see if they are equal. Don’t use a single&lt;br /&gt;Order the print version of this book to get all 700+ pages! 64&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt;equals sign in C# unless you are assigning a value to a variable, or your code will&lt;br /&gt;have a very different meaning than you expect!&lt;br /&gt;Breaking Long Lines of Code&lt;br /&gt;Since the message string in the above example was too long to fit on one line&lt;br /&gt;in this book, I also used the string concatenation operator to combine two&lt;br /&gt;shorter strings on separate lines to form the complete message. In VB.NET,&lt;br /&gt;I also had to break one line of code into two using the line continuation&lt;br /&gt;symbol (_, an underscore at the end of the line to be continued). Since C#&lt;br /&gt;marks the end of each command with a semicolon (;), I can split a single&lt;br /&gt;command over two lines without having to do anything special.&lt;br /&gt;I’ll use these techniques throughout this book to show long lines of code&lt;br /&gt;within a limited page width. Feel free to recombine the lines in your own&lt;br /&gt;code if you like—there is no actual length limit on lines of code in VB.NET&lt;br /&gt;and C#.&lt;br /&gt;Conditional Logic&lt;br /&gt;As you develop ASP.NET applications, there will be many instances in which&lt;br /&gt;you’ll need to perform an action only if a certain condition is met, for instance,&lt;br /&gt;if the user has checked a certain checkbox, selected a certain item from a&lt;br /&gt;DropDownList control, or typed a certain string into a TextBox control.&lt;br /&gt;We check for such things using conditionals, the simplest of which is probably&lt;br /&gt;the If statement. This statement is often used in conjunction with an Else&lt;br /&gt;statement, which specifies what should happen if the condition is not met. So,&lt;br /&gt;for instance, we may wish to check if the name entered in a text box is "Zak," redirecting&lt;br /&gt;to one page if it is, or else redirecting to an error page:&lt;br /&gt;VB.NET&lt;br /&gt;If (txtUsername.Text = "Zak") Then&lt;br /&gt;Response.Redirect("ZaksPage.aspx")&lt;br /&gt;Else&lt;br /&gt;Response.Redirect("errorPage.aspx")&lt;br /&gt;End If&lt;br /&gt;C#&lt;br /&gt;if (txtUsername.Text == "Zak") {&lt;br /&gt;Response.Redirect("ZaksPage.aspx");&lt;br /&gt;} else {&lt;br /&gt;Response.Redirect("errorPage.aspx");&lt;br /&gt;}&lt;br /&gt;65 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Conditional Logic&lt;br /&gt;Often, we want to check for one of many possibilities, and perform a particular&lt;br /&gt;action in each case. In that event, we can use the Switch Case (VB.NET) or&lt;br /&gt;switch (C#) construct:&lt;br /&gt;VB.NET&lt;br /&gt;Dim strName As String = txtUsername.Text&lt;br /&gt;Select Case strName&lt;br /&gt;Case "Zak"&lt;br /&gt;Response.Redirect("ZaksPage.aspx")&lt;br /&gt;Case "Mark"&lt;br /&gt;Response.Redirect("MarksPage.aspx")&lt;br /&gt;Case "Fred"&lt;br /&gt;Response.Redirect("FredsPage.aspx")&lt;br /&gt;Case Else&lt;br /&gt;Response.Redirect("errorPage.aspx")&lt;br /&gt;End Select&lt;br /&gt;C#&lt;br /&gt;string strName = txtUsername.Text;&lt;br /&gt;switch (strName) {&lt;br /&gt;case "Zak":&lt;br /&gt;Response.Redirect("ZaksPage.aspx");&lt;br /&gt;break;&lt;br /&gt;case "Mark":&lt;br /&gt;Response.Redirect("MarksPage.aspx");&lt;br /&gt;break;&lt;br /&gt;case "Fred":&lt;br /&gt;Response.Redirect("FredsPage.aspx");&lt;br /&gt;break;&lt;br /&gt;default:&lt;br /&gt;Response.Redirect("errorPage.aspx");&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;Loops&lt;br /&gt;As you’ve just seen, an If statement causes a code block to execute once if the&lt;br /&gt;value of its test expression is true. Loops, on the other hand, cause a code block&lt;br /&gt;to execute repeatedly for as long as the test expression remains true. There are&lt;br /&gt;two basic kinds of loop:&lt;br /&gt; While loops, also called Do loops, which sounds like something Betty Boop&lt;br /&gt;might say!&lt;br /&gt;Order the print version of this book to get all 700+ pages! 66&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt; For loops, including For Next and For Each&lt;br /&gt;A While loop is the simplest form of loop; it makes a block of code repeat for as&lt;br /&gt;long as a particular condition is true. Here’s an example:&lt;br /&gt;VB.NET&lt;br /&gt;Dim Counter As Integer = 0&lt;br /&gt;Do While Counter &lt;= 10&lt;br /&gt;' Convert out Integer to a String&lt;br /&gt;lblMessage.Text = Counter.ToString()&lt;br /&gt;' Below we use the += operator to increase our variable by 1&lt;br /&gt;Counter += 1&lt;br /&gt;Loop&lt;br /&gt;C#&lt;br /&gt;int counter = 0;&lt;br /&gt;while (counter &lt;= 10) {&lt;br /&gt;// Below we use a sneaky way to convert our int to a string&lt;br /&gt;lblMessage.Text = counter + "";&lt;br /&gt;// C# has the operator ++ to increase a variable by 1&lt;br /&gt;counter++;&lt;br /&gt;}&lt;br /&gt;You can try out this code—enter it inside a Page_Load subroutine of one of the&lt;br /&gt;pages you’ve already created. The page illustrating Page_Load at the start of this&lt;br /&gt;chapter would be ideal. Make sure you remove any other code in the subroutine,&lt;br /&gt;and that there is an ASP.NET Label control in the HTML of the page with the&lt;br /&gt;ID lblMessage. When you open the page, the label will be set to show the&lt;br /&gt;number 0, then 1, then 2, all the way to 10. Of course, since all this happens in&lt;br /&gt;Page_Load (i.e. before any output is sent to the browser), you’ll only see the last&lt;br /&gt;value assigned, 10.&lt;br /&gt;This demonstrates that the loop repeats until the condition is no longer met. Try&lt;br /&gt;changing the code so that the counter variable is initialized to 20 instead of 10.&lt;br /&gt;When you open the page now, you won’t see anything on screen, because the loop&lt;br /&gt;condition was never met.&lt;br /&gt;67 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Loops&lt;br /&gt;There is another form of the While loop, called a Do While loop, which checks&lt;br /&gt;if the condition has been met at the end of the code block, rather than at the beginning:&lt;br /&gt;VB.NET&lt;br /&gt;Dim Counter As Integer = 0&lt;br /&gt;Do&lt;br /&gt;' Convert our Integer to a String&lt;br /&gt;lblMessage.Text = Counter.toString()&lt;br /&gt;' Below we use the += operator to increase our variable by 1&lt;br /&gt;Counter += 1&lt;br /&gt;Loop While Counter &lt;= 10&lt;br /&gt;C#&lt;br /&gt;int counter = 0;&lt;br /&gt;do {&lt;br /&gt;// Below we use a sneaky way to convert our int to a string&lt;br /&gt;lblMessage.Text = counter + "";&lt;br /&gt;// C# has the operator ++ to increase a variable by 1&lt;br /&gt;counter++;&lt;br /&gt;} while (counter &lt;= 10);&lt;br /&gt;If you run this code, you’ll see it provides the exact same output we saw when&lt;br /&gt;we tested the condition before the code block. However, we can see the crucial&lt;br /&gt;difference if we again change it so the counter variable is initialized to 20. In this&lt;br /&gt;case, we will, in fact, see 20 on screen, because the loop code is executed once&lt;br /&gt;before the condition is even checked! There are some instances when this is just&lt;br /&gt;what we want, so being able to place the condition at the end of the loop can be&lt;br /&gt;very handy.&lt;br /&gt;A For loop is similar to a While loop, but is typically used when the number of&lt;br /&gt;times we need it to execute is known beforehand. The following example displays&lt;br /&gt;the count of items within a DropDownList control called ddlProducts:&lt;br /&gt;VB.NET&lt;br /&gt;Dim i As Integer&lt;br /&gt;For i = 1 To ddlProducts.Items.Count&lt;br /&gt;lblMessage.Text = i.toString()&lt;br /&gt;Next&lt;br /&gt;Order the print version of this book to get all 700+ pages! 68&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt;C#&lt;br /&gt;int i;&lt;br /&gt;for (i = 1; i &lt;= ddlProducts.Items.Count; i++) {&lt;br /&gt;lblMessage.Text = Convert.ToString(i);&lt;br /&gt;}&lt;br /&gt;In VB.NET, the loop syntax specifies the starting and ending values for our&lt;br /&gt;counter variable in the For statement itself. In C#, we assign a starting value (i&lt;br /&gt;= 1), a condition to be tested each time through the loop, just like a While loop&lt;br /&gt;(i &lt;= ddlProducts.Items.Count), and how the counter variable should be incremented&lt;br /&gt;after each loop (i++). While this allows for some powerful variations&lt;br /&gt;on the theme in C#, it can be confusing at first. In VB.NET, the syntax is considerably&lt;br /&gt;simpler, but can be a bit limiting in exceptional cases.&lt;br /&gt;The other type of For loop is For Each, which loops through every item within&lt;br /&gt;a collection. The following example loops through an array called arrayName:&lt;br /&gt;VB.NET&lt;br /&gt;For Each item In arrayName&lt;br /&gt;lblMessage.Text = item&lt;br /&gt;Next&lt;br /&gt;C#&lt;br /&gt;foreach (string item in arrayName) {&lt;br /&gt;lblMessage.Text = item;&lt;br /&gt;}&lt;br /&gt;You may also come across instances in which you need to exit a loop prematurely.&lt;br /&gt;In this case, you would use Exit (VB.NET) or break (C#) to terminate the loop:&lt;br /&gt;VB.NET&lt;br /&gt;Dim i As Integer&lt;br /&gt;For i = 0 To 10&lt;br /&gt;If (i = 5) Then&lt;br /&gt;Response.Write("Oh no! Not the number 5!!")&lt;br /&gt;Exit For&lt;br /&gt;End If&lt;br /&gt;Next&lt;br /&gt;C#&lt;br /&gt;int i;&lt;br /&gt;for (i = 0; i &lt;= 10; i++) {&lt;br /&gt;if (i == 5) {&lt;br /&gt;Response.Write("Oh no! Not the number 5!!");&lt;br /&gt;break;&lt;br /&gt;69 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Loops&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;In this case, as soon as our For loop hits 5, it displays a warning message, using&lt;br /&gt;the Response.Write() method that will be familiar to those with past ASP experience,&lt;br /&gt;and exits the loop so that no further passes through the loop will be&lt;br /&gt;made.&lt;br /&gt;Although we have only scratched the surface, VB.NET and C# provide a great&lt;br /&gt;deal of power and flexibility to the Web developer, and time spent learning the&lt;br /&gt;basics now will more than pay off in the future.&lt;br /&gt;Understanding Namespaces&lt;br /&gt;Because ASP.NET is part of the .NET Framework, we have access to all the&lt;br /&gt;goodies that are built into it in the form of the .NET Framework Class Library.&lt;br /&gt;This library represents a huge resource of tools and features in the form of classes,&lt;br /&gt;all organized in a hierarchy of namespaces. When we want to use certain features&lt;br /&gt;that .NET provides, we have only to find the namespace that contains that&lt;br /&gt;functionality, and import that namespace into our ASP.NET page. Once we’ve&lt;br /&gt;done that, we can make use of the .NET classes in that namespace to achieve&lt;br /&gt;our own ends.&lt;br /&gt;For instance, if we wanted to access a database from a page, we would import&lt;br /&gt;the namespace that contains classes for this purpose, which happens to be the&lt;br /&gt;System.Data.OleDb namespace. The dots (.) here indicate different levels of the&lt;br /&gt;hierarchy I mentioned—in other words, the System.Data.OleDb namespace is&lt;br /&gt;grouped within the System.Data namespace, which in turn is contained in the&lt;br /&gt;System namespace.&lt;br /&gt;To import a particular namespace into an ASP.NET page, we use the Import&lt;br /&gt;directive. Consider the following excerpt from an ASP.NET page; it imports the&lt;br /&gt;System.Data.OleDb namespace, which contains classes called OleDbConnection,&lt;br /&gt;OleDbCommand, and OleDbDataReader. Importing the namespace lets us use these&lt;br /&gt;classes in a subroutine to display records from an Access database:&lt;br /&gt;VB.NET&lt;br /&gt;&lt;%@ Import Namespace="System.Data.OleDb" %&gt;&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;script runat="server" language="VB"&gt;&lt;br /&gt;Sub ReadDatabase(s As Object, e As EventArgs)&lt;br /&gt;Dim objConn As New OleDbConnection( _&lt;br /&gt;Order the print version of this book to get all 700+ pages! 70&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt;"Provider=Microsoft.Jet.OLEDB.4.0;" &amp; _&lt;br /&gt;"Data Source=C:\Database\books.mdb")&lt;br /&gt;Dim objCmd As New OleDbCommand("SELECT * FROM BookList", _&lt;br /&gt;objConn)&lt;br /&gt;Dim drBooks As OleDbDataReader&lt;br /&gt;objConn.Open()&lt;br /&gt;drBooks = objCmd.ExecuteReader()&lt;br /&gt;While drBooks.Read()&lt;br /&gt;Response.Write("&lt;li&gt;")&lt;br /&gt;Response.Write(drBooks("Title"))&lt;br /&gt;End While&lt;br /&gt;objConn.Close()&lt;br /&gt;End Sub&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;C#&lt;br /&gt;&lt;%@ Import Namespace="System.Data.OleDb" %&gt;&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;script runat="server" language="C#"&gt;&lt;br /&gt;void ReadDatabase(Object s, EventArgs e) {&lt;br /&gt;OleDbConnection objConn = new OleDbConnection(&lt;br /&gt;"Provider=Microsoft.Jet.OLEDB.4.0;" +&lt;br /&gt;"Data Source=C:\\Database\\books.mdb");&lt;br /&gt;OleDbCommand objCmd = new OleDbCommand("SELECT * FROM BookList",&lt;br /&gt;objConn);&lt;br /&gt;OleDbDataReader drBooks;&lt;br /&gt;objConn.Open();&lt;br /&gt;drBooks = objCmd.ExecuteReader();&lt;br /&gt;while (drBooks.Read()) {&lt;br /&gt;Response.Write("&lt;li&gt;");&lt;br /&gt;Response.Write(drBooks["Title"]);&lt;br /&gt;}&lt;br /&gt;objConn.Close();&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;Don’t worry too much about the code right now (we cover this in detail in&lt;br /&gt;Chapter 6). Suffice it to say that, as we’ve imported that namespace, we have&lt;br /&gt;access to all the classes that it contains, and we can use them to get information&lt;br /&gt;from an Access database for display on our page.&lt;br /&gt;71 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Understanding Namespaces&lt;br /&gt;Specifically, the classes from System.Data.OleDb that are used in the above code&lt;br /&gt;are:&lt;br /&gt;OleDbConnection Used for connecting to the database&lt;br /&gt;OleDbCommand Used for creating a statement of contents to read from&lt;br /&gt;the database.&lt;br /&gt;OleDbConnection Used for connecting to the database&lt;br /&gt;OleDbCommand Used for creating a statement of contents to read from&lt;br /&gt;the database&lt;br /&gt;OleDbDataReader Used for actually reading contents from database&lt;br /&gt;Object Oriented Programming Concepts&lt;br /&gt;VB.NET and C# are great programming languages because they offer a structured&lt;br /&gt;way of programming. By structured, I mean that code is separated into modules,&lt;br /&gt;where each module defines classes that can be imported and used in other modules.&lt;br /&gt;Both languages are relatively simple to get started with, yet offer features&lt;br /&gt;sophisticated enough for complex, large-scale enterprise applications.&lt;br /&gt;The languages’ ability to support more complex applications—their scalability—&lt;br /&gt;stems from the fact that both are object oriented programming (OOP)&lt;br /&gt;languages. But ask a seasoned developer what OOP really is, and they’ll start&lt;br /&gt;throwing out buzzwords and catch phrases that are sure to confuse you—terms&lt;br /&gt;like polymorphism, inheritance, and encapsulation. In this section, I aim to&lt;br /&gt;explain the fundamentals of OOP and how good OOP style can help you develop&lt;br /&gt;better, more versatile Web applications down the road. This section will provide&lt;br /&gt;a basic OOP foundation angled towards the Web developer. In particular, we’ll&lt;br /&gt;cover the following concepts:&lt;br /&gt; Objects&lt;br /&gt; Properties&lt;br /&gt; Methods&lt;br /&gt; Classes&lt;br /&gt; Scope&lt;br /&gt;Order the print version of this book to get all 700+ pages! 72&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt; Events&lt;br /&gt; Inheritance&lt;br /&gt;Objects&lt;br /&gt;In OOP, one thinks of programming problems in terms of objects, properties,&lt;br /&gt;and methods. The best way to get a handle on these terms is to consider a real&lt;br /&gt;world object and show how it might be represented in an OOP program. Many&lt;br /&gt;books use the example of a car to introduce OOP. I’ll try to avoid that analogy&lt;br /&gt;and use something friendlier: my dog, an Australian Shepherd named Rayne.&lt;br /&gt;Rayne is your average great, big, friendly, loving, playful mutt. You might describe&lt;br /&gt;him in terms of his physical properties: he’s gray, white, brown, and black, stands&lt;br /&gt;roughly one and a half feet high, and is about three feet long. You might also&lt;br /&gt;describe some methods to make him do things: he sits when he hears the command&lt;br /&gt;"Sit", lies down when he hears the command "Lie down", and comes when his&lt;br /&gt;name is called.&lt;br /&gt;So, if we were to represent Rayne in an OOP program, we’d probably start by&lt;br /&gt;creating a class called Dog. A class describes how certain types of objects look&lt;br /&gt;from a programming point of view. When we define a class, we must define the&lt;br /&gt;following two things:&lt;br /&gt;Properties Properties hold specific information relevant to that class&lt;br /&gt;of object. You can think of properties as characteristics of&lt;br /&gt;the objects that they represent. Our Dog class might have&lt;br /&gt;properties such as Color, Height, and Length.&lt;br /&gt;Methods Methods are actions that objects of the class can be told&lt;br /&gt;to perform. Methods are subroutines (if they don’t return&lt;br /&gt;a value) or functions (if they do) that are specific to a given&lt;br /&gt;class. So the Dog class could have methods such as sit(),&lt;br /&gt;and lie_down().&lt;br /&gt;Once we’ve defined a class, we can write code that creates objects of that class,&lt;br /&gt;using the class a little like a template. This means that objects of a particular&lt;br /&gt;class expose (or make available) the methods and properties defined by that class.&lt;br /&gt;So, we might create an instance of our Dog class called Rayne, set its properties&lt;br /&gt;accordingly, and use the methods defined by the class to interact with Rayne, as&lt;br /&gt;shown in Figure 3.3.&lt;br /&gt;73 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Objects&lt;br /&gt;Figure 3.3. The methods defined by the class interact with the&lt;br /&gt;object.&lt;br /&gt;This is just a simple example to help you visualize what OOP is all about. In the&lt;br /&gt;next few sections, we’ll cover properties and methods in greater detail, talk about&lt;br /&gt;classes and class instances, scope, events, and even inheritance.&lt;br /&gt;Properties&lt;br /&gt;As we’ve seen, properties are characteristics shared by all objects of a particular&lt;br /&gt;class. In the case of our example, the following properties might be used to describe&lt;br /&gt;any given dog:&lt;br /&gt; Color&lt;br /&gt; Height&lt;br /&gt; Length&lt;br /&gt;In the same way, the more useful ASP.NET Button class exposes properties including:&lt;br /&gt;Order the print version of this book to get all 700+ pages! 74&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt; Width&lt;br /&gt; Height&lt;br /&gt; ID&lt;br /&gt; Text&lt;br /&gt; ForeColor&lt;br /&gt; BackColor&lt;br /&gt;Unfortunately for me, if I get sick of Rayne’s color, I can’t change it. ASP.NET&lt;br /&gt;objects, on the other hand, let us change their properties very easily in the same&lt;br /&gt;way that we set variables. For instance, we’ve already used properties when setting&lt;br /&gt;text for the Label control, which is actually an object of class Label in the&lt;br /&gt;namespace System.Web.UI.WebControls:&lt;br /&gt;VB.NET&lt;br /&gt;lblMyText.Text = "Hello World"&lt;br /&gt;C#&lt;br /&gt;lblMyText.Text = "Hello World";&lt;br /&gt;In this example, we’re using a Label control called lblMyText. Remember,&lt;br /&gt;ASP.NET is all about controls, and, as it’s built on OOP, all control types are&lt;br /&gt;represented as classes. In fact, as you’ll learn in Chapter 4, all interaction with&lt;br /&gt;ASP.NET pages is handled via controls. When we place a control on a page, we&lt;br /&gt;give it a name through its id attribute, and this ID then serves as the name of&lt;br /&gt;the control. Rayne is an object. His name, or ID, is Rayne. Rayne has a height&lt;br /&gt;of eighteen inches. The same holds true for the Label control. The Label control’s&lt;br /&gt;name or ID in the previous example is lblMyText. Next, we use the dot operator&lt;br /&gt;(.) to access the property Text that the object exposes and set it to the string&lt;br /&gt;"Hello World."&lt;br /&gt;Methods&lt;br /&gt;With our dog example, we can make a particular dog do things by calling commands.&lt;br /&gt;If I want Rayne to sit, I tell him to sit. If I want Rayne to lie down, I tell&lt;br /&gt;him to lie down. In object oriented terms, I tell him what I want him to do by&lt;br /&gt;calling a predefined command or method, and a resulting action is performed.&lt;br /&gt;In VB.NET or C#, we would write this as rayne.Sit(), or rayne.LieDown().&lt;br /&gt;75 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Methods&lt;br /&gt;As Web developers, we frequently call methods when a given event occurs. For&lt;br /&gt;instance, the example earlier in this chapter that took information from an Access&lt;br /&gt;database created an object called objConn to represent the connection to the&lt;br /&gt;database. We then opened the connection by calling the Open() method on that&lt;br /&gt;object as follows:&lt;br /&gt;VB.NET&lt;br /&gt;Dim objConn As As New OleDbConnection(&lt;br /&gt;"Provider=Microsoft.Jet.OLEDB.4.0;" &amp; _&lt;br /&gt;"Data Source=C:\Database\books.mdb")&lt;br /&gt;…&lt;br /&gt;objConn.Open()&lt;br /&gt;We say that the Open() method is exposed by the connection object, and that&lt;br /&gt;we’re calling the Open() method on the OleDbConnection object stored in&lt;br /&gt;objConn. We don’t need to know what dark secrets the method uses to do its&lt;br /&gt;magic; all we need to know is its name and what we use it for.&lt;br /&gt;Classes&lt;br /&gt;You can think of a class as a template for building as many objects as you like of&lt;br /&gt;a particular type. When you create an instance of a class, you are creating an&lt;br /&gt;object of that class, and the new object has all the characteristics and behaviors&lt;br /&gt;(properties and methods) defined by the class.&lt;br /&gt;In our dog example, Rayne was an instance of the Dog class as shown in Figure 3.4.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 76&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt;Figure 3.4. A class serves as the blueprint for an object.&lt;br /&gt;We see that Rayne is an object of class Dog. In our code, we could create a new&lt;br /&gt;instance of the Dog class, call it rayne, and use all the properties and methods&lt;br /&gt;exposed by the object.&lt;br /&gt;In OOP, when we create new instances of a class, we say we’re instantiating&lt;br /&gt;that class. For instance (no pun intended!), if we need to programmatically create&lt;br /&gt;a new instance of the Button control class, we could write the following code:&lt;br /&gt;VB.NET&lt;br /&gt;Dim myButton As New Button()&lt;br /&gt;C#&lt;br /&gt;Button myButton = new Button();&lt;br /&gt;As you can see, we’ve essentially created a new object called myButton from the&lt;br /&gt;Button class. We can then access the properties and methods that the Button&lt;br /&gt;exposes through our new instance:&lt;br /&gt;VB.NET&lt;br /&gt;myButton.Text = "Click Me!"&lt;br /&gt;C#&lt;br /&gt;myButton.Text = "Click Me!";&lt;br /&gt;77 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Classes&lt;br /&gt;Scope&lt;br /&gt;You should now have a concept of programming objects as entities that exist in&lt;br /&gt;a program and are manipulated through the methods and properties they expose.&lt;br /&gt;However, in some cases, we want to create methods to use inside our class, which&lt;br /&gt;are not available when that class is used in code. Let’s return to the Dog class to&lt;br /&gt;illustrate.&lt;br /&gt;Imagine we’re writing the Sit() method inside this class, and we realize that&lt;br /&gt;before the dog can sit, it has to shuffle its back paws forward a little (Just bear&lt;br /&gt;with me on this one…)! We could create a method called ShufflePaws(), then&lt;br /&gt;call that method from inside the Sit() method. However, we don’t want code&lt;br /&gt;in an ASP.NET page or in some other class to call this method—it’d just be silly.&lt;br /&gt;We can prevent this by controlling the scope of that method.&lt;br /&gt;The two types of scope available in VB.NET and C# that you should know about&lt;br /&gt;are:&lt;br /&gt;Public Defining a property or method of a class as public allows that&lt;br /&gt;property or method to be called from outside the class itself. In&lt;br /&gt;other words, if an instance of this class is created inside another&lt;br /&gt;object (remember, too, that ASP.NET pages themselves are objects),&lt;br /&gt;public methods and properties are freely available to the&lt;br /&gt;code that created it. This is the default scope in VB.NET and C#&lt;br /&gt;classes.&lt;br /&gt;Private If a property or method of a class is private, it cannot be used&lt;br /&gt;from outside the class itself. If an instance of this class is created&lt;br /&gt;inside an object of a different class, the creating object has no&lt;br /&gt;access to private methods or properties of the created object.&lt;br /&gt;Events&lt;br /&gt;We’ve covered events fairly well already. To sum up, events occur when a control&lt;br /&gt;object sends a message in response to some change that has happened to it.&lt;br /&gt;Generally, these changes occur as the result of user interaction with the control&lt;br /&gt;in the browser. For instance, when a button is clicked, a Click event is raised,&lt;br /&gt;and we can handle that event to perform some action. The object that triggers&lt;br /&gt;the event is referred to as the event sender, while the object that receives the&lt;br /&gt;event is referred to as the event receiver. You’ll learn more about these terms&lt;br /&gt;in Chapter 4.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 78&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt;Understanding Inheritance&lt;br /&gt;The term inheritance refers to the ability for one class to use properties and&lt;br /&gt;methods exposed by another class.&lt;br /&gt;In our dog example, we first created a class called Dog, then created instances of&lt;br /&gt;that class to represent individual dogs such as Rayne. However, dogs are types&lt;br /&gt;of animals, and many characteristics of dogs are shared by all (or most) animals.&lt;br /&gt;For instance, Rayne has four legs, two ears, one nose, two eyes, etc. It might be&lt;br /&gt;better, then, for us to create a base class called Animal. When we then define&lt;br /&gt;the Dog class, it would inherit from the Animal class, and all public properties&lt;br /&gt;and methods of Animal would be available to instances of the Dog class.&lt;br /&gt;Similarly, we could create a new class based on the Dog class. In programming&lt;br /&gt;circles, this is called deriving a subclass from Dog. For instance, we might create&lt;br /&gt;a class for Australian Shepherd and one for my other dog Amigo, called Chihuahua,&lt;br /&gt;both of which would inherit the properties and methods of the Dog base&lt;br /&gt;class, and define new ones specific to each breed.&lt;br /&gt;Don’t worry too much if this is still a little unclear. The best way to appreciate&lt;br /&gt;inheritance is to see it used in a real program. The most obvious use of inheritance&lt;br /&gt;in ASP.NET comes with the technique of code-behind.&lt;br /&gt;Separating Code From Content With&lt;br /&gt;Code-Behind&lt;br /&gt;Most companies that employ development teams usually split projects into two&lt;br /&gt;groups, visual design and functional development, because software engineers&lt;br /&gt;are usually poor designers, and designers are often poor engineers. Until now,&lt;br /&gt;our ASP.NET pages have contained code render blocks that place VB.NET or&lt;br /&gt;C# code directly within the ASP.NET page. The problem with this approach is&lt;br /&gt;that there is no separation between the presentational elements of the page and&lt;br /&gt;the application logic. Traditional ASP was infamous for creating “spaghetti” code,&lt;br /&gt;which was scattered and intertwined throughout the presentation elements. This&lt;br /&gt;made it very tricky to manage the code between development teams, as you’ll&lt;br /&gt;know if you’ve ever tried to pick apart someone else’s ASP code. In response to&lt;br /&gt;these problems, ASP.NET introduces a new way of developing pages that allows&lt;br /&gt;code developers to work separately from the presentational designers who lay&lt;br /&gt;out individual pages.&lt;br /&gt;79 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Understanding Inheritance&lt;br /&gt;This new method, called code-behind, keeps all of your presentational elements&lt;br /&gt;(controls) inside the .aspx file, but moves all your code to a separate class in a&lt;br /&gt;.vb or .cs code-behind file. Consider the following ASP.NET page, which displays&lt;br /&gt;a simple button and label:&lt;br /&gt;VB.NET&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;title&gt;Sample Page using VB.NET&lt;/title&gt;&lt;br /&gt;&lt;script runat="server" language="VB"&gt;&lt;br /&gt;Sub Click(s As Object, e As EventArgs)&lt;br /&gt;lblMessage.Text = "Hello World"&lt;br /&gt;End Sub&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;asp:Button id="btnSubmit" Text="Click Me" runat="server"&lt;br /&gt;OnClick="Click" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;asp:label id="lblMessage" runat="server"&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;C#&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;title&gt;Sample Page using C#&lt;/title&gt;&lt;br /&gt;&lt;script runat="server" language="C#"&gt;&lt;br /&gt;void Click(Object s, EventArgs e) {&lt;br /&gt;lblMessage.Text = "Hello World";&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;asp:Button id="btnSubmit" Text="Click Me" runat="server"&lt;br /&gt;OnClick="Click" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;asp:label id="lblMessage" runat="server"&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;Order the print version of this book to get all 700+ pages! 80&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt;Let’s see how this example could be separated into the following two distinct&lt;br /&gt;files:&lt;br /&gt;sample.aspx layout, presentation, and static content&lt;br /&gt;sample.vb code-behind files containing a custom page class&lt;br /&gt;sample.cs&lt;br /&gt;First, we take all the code and place it in the code-behind file (sample.vb or&lt;br /&gt;sample.cs). This file is a pure code file, and contains no HTML or other markup&lt;br /&gt;tags. What it does contain is a class definition. Nevertheless, we can still access&lt;br /&gt;presentation elements from this file, using their IDs, such as lblMessage:&lt;br /&gt;VB.NET File: sample.vb&lt;br /&gt;' First off we import some useful namespaces&lt;br /&gt;Imports System&lt;br /&gt;Imports System.Web.UI&lt;br /&gt;Imports System.Web.UI.WebControls&lt;br /&gt;' All code-behind classes generally inherit from Page&lt;br /&gt;Public Class Sample&lt;br /&gt;Inherits Page&lt;br /&gt;' Declare the presentation elements on the ASPX page&lt;br /&gt;Protected WithEvents lblMessage As Label&lt;br /&gt;Protected WithEvents btnSubmit As Button&lt;br /&gt;' Here's the Click handler just as it appeared before&lt;br /&gt;Sub Click(s As Object, e As EventArgs)&lt;br /&gt;lblMessage.Text = "Hello World"&lt;br /&gt;End Sub&lt;br /&gt;End Class&lt;br /&gt;C# File: sample.cs&lt;br /&gt;// First off we import some useful namespaces&lt;br /&gt;using System;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.UI.WebControls;&lt;br /&gt;// All code-behind classes generally inherit from Page&lt;br /&gt;public class Sample : Page&lt;br /&gt;{&lt;br /&gt;// Declare the presentation elements on the ASPX page&lt;br /&gt;protected Label lblMessage;&lt;br /&gt;protected Button btnSubmit;&lt;br /&gt;81 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Separating Code From Content With Code-Behind&lt;br /&gt;// Here's the Click handler just as it appeared before&lt;br /&gt;public void Click(Object s, EventArgs e) {&lt;br /&gt;lblMessage.Text = "Hello World";&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;Without code, the main ASP.NET page becomes much simpler:&lt;br /&gt;VB.NET File: sample.aspx&lt;br /&gt;&lt;%@ Page Inherits="Sample" Src="Sample.vb" %&gt;&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;title&gt;Sample Page using VB.NET&lt;/title&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;asp:Button id="btnSubmit" Text="Click Me" runat="server"&lt;br /&gt;OnClick="Click" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;asp:label id="lblMessage" runat="server"&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;C# File: sample.aspx&lt;br /&gt;&lt;%@ Page Inherits="Sample" Src="Sample.cs" %&gt;&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;title&gt;Sample Page using C#&lt;/title&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;asp:Button id="btnSubmit" Text="Click Me" runat="server"&lt;br /&gt;OnClick="Click" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;asp:label id="lblMessage" runat="server"&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;As you can see, the only line that’s different between the .aspx pages is the Page&lt;br /&gt;directive:&lt;br /&gt;Order the print version of this book to get all 700+ pages! 82&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt;VB.NET File: sample.aspx (excerpt)&lt;br /&gt;&lt;%@ Page Inherits="Sample" Src="Sample.vb" %&gt;&lt;br /&gt;C# File: sample.aspx (excerpt)&lt;br /&gt;&lt;%@ Page Inherits="Sample" Src="Sample.cs" %&gt;&lt;br /&gt;The only real change between the VB.NET and C# versions of the page is the&lt;br /&gt;source filename extension. In both cases, the page inherits from the class Sample.&lt;br /&gt;The code-behind file is written differently from what you’re used to seeing so far.&lt;br /&gt;While we no longer need &lt;script&gt; tags, we find a class definition in its place.&lt;br /&gt;Looking at the VB.NET example, we start with three lines that import namespaces&lt;br /&gt;to be used in the code:&lt;br /&gt;VB.NET File: sample.aspx (excerpt)&lt;br /&gt;Imports System&lt;br /&gt;Imports System.Web.UI&lt;br /&gt;Imports System.Web.UI.WebControls&lt;br /&gt;The next lines create a new class, named Sample. Because our code-behind page&lt;br /&gt;contains code for an ASP.NET page, our class inherits from the Page class:&lt;br /&gt;VB.NET File: sample.aspx (excerpt)&lt;br /&gt;Public Class Sample&lt;br /&gt;Inherits Page&lt;br /&gt;This is the practical application of inheritance that I mentioned above. Instead&lt;br /&gt;of using the built-in Page class, the code-behind method has you derive a subclass&lt;br /&gt;of Page for each page in your site. Next, we have to declare the controls that we&lt;br /&gt;want to use from the .aspx page—if we forget this step, we won’t be able to access&lt;br /&gt;them from our code:&lt;br /&gt;VB.NET File: sample.aspx (excerpt)&lt;br /&gt;Protected WithEvents lblMessage As Label&lt;br /&gt;Protected WithEvents btnSubmit As Button&lt;br /&gt;Finally, we create the Click subroutine just as before, and terminate the class:&lt;br /&gt;VB.NET File: sample.aspx (excerpt)&lt;br /&gt;Sub Click(s As Object, e As EventArgs)&lt;br /&gt;lblMessage.Text = "Hello World"&lt;br /&gt;End Sub&lt;br /&gt;End Class&lt;br /&gt;83 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Separating Code From Content With Code-Behind&lt;br /&gt;As I hope you can see, code-behind files are reasonably easy to work with, and&lt;br /&gt;they can make managing and using our pages much more straightforward. On a&lt;br /&gt;typical project, I tend to use code-behind files quite frequently, but for simplicity’s&lt;br /&gt;sake, we’ll stick with code declaration blocks for at least the next few chapters.&lt;br /&gt;Summary&lt;br /&gt;Phew! That’s quite a few concepts to understand over the course of a single&lt;br /&gt;chapter. Don’t worry—with a little practice, these concepts will become second&lt;br /&gt;nature. I hope you leave this chapter with a basic understanding of programming&lt;br /&gt;concepts as they relate to the Web developer. The next chapter will begin to put&lt;br /&gt;all the concepts that we’ve covered so far into practice, beginning by covering&lt;br /&gt;HTML Controls, Web Forms, and Web Controls, before launching into our first&lt;br /&gt;hands-on project.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 84&lt;br /&gt;Chapter 3: VB.NET and C# Programming Basics&lt;br /&gt;Web Forms and Web Controls 4&lt;br /&gt;At the heart of ASP.NET is its ability to create dynamic form content. Whether&lt;br /&gt;you’re creating a complex shopping cart application, or a simple page to collect&lt;br /&gt;user information and send the results out via email, Web Forms have a solution.&lt;br /&gt;They allow you to use HTML controls and Web controls to create dynamic pages&lt;br /&gt;with which users can interact. In this chapter, you will learn how Web Forms,&lt;br /&gt;HTML controls, and Web controls, in conjunction with VB.NET and C# code,&lt;br /&gt;should change the way you look at, and develop for, the Web. In this chapter I’ll&lt;br /&gt;introduce you to the following concepts:&lt;br /&gt; HTML controls&lt;br /&gt; Web Forms&lt;br /&gt; Web controls&lt;br /&gt; Handling page navigation&lt;br /&gt; Formatting controls with CSS&lt;br /&gt;Toward the end of the chapter, you’ll put all of these concepts to work into a&lt;br /&gt;real world application! I’ll introduce the Dorknozzle Intranet Application that&lt;br /&gt;you’ll be building throughout this book, and see how what you learned in this&lt;br /&gt;chapter can be applied to some of the pages for the project.&lt;br /&gt;Working with HTML Controls&lt;br /&gt;HTML controls are outwardly identical to plain old HTML 4.0 tags, but employ&lt;br /&gt;the runat="server" attribute. For each of HTML’s most common tags, a corresponding&lt;br /&gt;server-side HTML control exists, although Microsoft has added a few&lt;br /&gt;tags and some extra properties for each. Creating HTML controls is easy—we&lt;br /&gt;simply stick a runat="server" attribute on the end of a normal HTML tag to&lt;br /&gt;create the HTML control version of that tag. The complete list of current HTML&lt;br /&gt;control classes and their associated tags is given in Table 4.1.&lt;br /&gt;These HTML control classes are all contained within the&lt;br /&gt;System.Web.UI.HtmlControls namespace.&lt;br /&gt;Because HTML controls are processed on the server side by the ASP.NET runtime,&lt;br /&gt;we can easily access their properties through code elsewhere in the page. If you’re&lt;br /&gt;familiar with JavaScript, HTML, and CSS, then you’ll know that manipulating&lt;br /&gt;text within HTML tags, or even manipulating inline styles within an HTML tag,&lt;br /&gt;can be cumbersome and error-prone. HTML controls aim to solve this by allowing&lt;br /&gt;you to manipulate the page easily with your choice of .NET language, for instance,&lt;br /&gt;using VB.NET or C#. We’ll start by looking at the HTML controls library, then&lt;br /&gt;we’ll explore in more detail the properties exposed by the controls when we process&lt;br /&gt;a simple form containing HTML controls and code.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 86&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;Table 4.1. HTML Control Classes&lt;br /&gt;Associated Tags Class&lt;br /&gt;&lt;a href="…" runat="server"&gt; HtmlAnchor&lt;br /&gt;&lt;button runat="server"&gt; HtmlButton&lt;br /&gt;&lt;form runat="server"&gt; HtmlForm&lt;br /&gt;&lt;img runat="server" /&gt; HtmlImage&lt;br /&gt;&lt;input type="submit" runat="server"&gt;&lt;br /&gt;&lt;input type="reset" runat="server"&gt;&lt;br /&gt;&lt;input type="button" runat="server"&gt;&lt;br /&gt;HtmlInputButton&lt;br /&gt;&lt;input type="checkbox" runat="server"&gt; HtmlInputCheckBox&lt;br /&gt;&lt;input type="file" runat="server"&gt; HtmlInputFile&lt;br /&gt;&lt;input type="hidden" runat="server"&gt; HtmlInputHidden&lt;br /&gt;&lt;input type="image" runat="server"&gt; HtmlInputImage&lt;br /&gt;&lt;input type="radio" runat="server"&gt; HtmlInputRadioButton&lt;br /&gt;&lt;input type="text" runat="server"&gt; HtmlInputText&lt;br /&gt;&lt;select runat="server"&gt; HtmlSelect&lt;br /&gt;&lt;table runat="server"&gt; HtmlTable&lt;br /&gt;&lt;tr runat="server"&gt; HtmlTableRow&lt;br /&gt;&lt;td runat="server"&gt;&lt;br /&gt;&lt;th runat="server"&gt;&lt;br /&gt;HtmlTableCell&lt;br /&gt;&lt;textarea runat="server"&gt; HtmlTextArea&lt;br /&gt;All other HTML tags, including&lt;br /&gt;&lt;span runat="server"&gt;&lt;br /&gt;&lt;div runat="server"&gt;&lt;br /&gt;&lt;body runat="server"&gt;&lt;br /&gt;&lt;span runat="server"&gt;&lt;br /&gt;HtmlGenericControl&lt;br /&gt;HtmlAnchor&lt;br /&gt;The HtmlAnchor control creates a server-side HTML &lt;a href="…"&gt; tag.&lt;br /&gt;87 Order the print version of this book to get all 700+ pages!&lt;br /&gt;HtmlAnchor&lt;br /&gt;&lt;a href="somepage.aspx" runat="server"&gt;Click Here&lt;/a&gt;&lt;br /&gt;This line would create a new hyperlink with the text “Click Here.” Once the link&lt;br /&gt;is clicked, the user would be redirected to somepage.aspx as given by the href&lt;br /&gt;attribute.&lt;br /&gt;HtmlButton&lt;br /&gt;The HtmlButton control creates a server-side HTML &lt;button&gt; tag.&lt;br /&gt;&lt;button id="myButton" onserverclick="Click" runat="server"&gt;Click&lt;br /&gt;Here&lt;/button&gt;&lt;br /&gt;Notice that we’re using events here. On HTML controls, we need to use OnServer-&lt;br /&gt;Click to specify the ASP.NET handler for clicks on the button, because onclick&lt;br /&gt;is reserved for handling clicks with JavaScript on the client side. In this example,&lt;br /&gt;the handler subroutine is called Click, and would be declared in a script block&lt;br /&gt;with the same form as the Click handlers we looked at for &lt;asp:button&gt; tags&lt;br /&gt;previously:&lt;br /&gt;VB.NET&lt;br /&gt;&lt;script runat="server" language="VB"&gt;&lt;br /&gt;Sub Click(s As Object, e As EventArgs)&lt;br /&gt;Response.Write(myButton.ID)&lt;br /&gt;End Sub&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;C#&lt;br /&gt;&lt;script runat="server" language="C#"&gt;&lt;br /&gt;void Click(Object s, EventArgs e) {&lt;br /&gt;Response.Write(myButton.ID);&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;In this case, when the user clicks the button, the ServerClick event is raised,&lt;br /&gt;the Click() subroutine is called to handle it, and the ID of the HtmlButton&lt;br /&gt;control is written onto the screen with Response.Write() (the Write() method&lt;br /&gt;of the Response object).&lt;br /&gt;HtmlForm&lt;br /&gt;The HtmlForm control creates a server-side &lt;form&gt; tag. Most HTML controls,&lt;br /&gt;Web controls, etc., must be placed inside an HtmlForm control.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 88&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;!-- ASP.NET controls in here --&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;HtmlImage&lt;br /&gt;The HtmlImage control creates a server-side &lt;img&gt; tag. The following code shows&lt;br /&gt;how we might place an HtmlImage control on a page, along with an HtmlButton:&lt;br /&gt;&lt;img id="myimage" src="arrow.gif" runat="server" /&gt;&lt;br /&gt;&lt;button id="myButton" runat="server" onserverclick="Click"&gt;Click&lt;br /&gt;Here&lt;/button&gt;&lt;br /&gt;The user could change this image dynamically by pressing the button if we add&lt;br /&gt;code as follows:&lt;br /&gt;VB.NET&lt;br /&gt;&lt;script runat="server" language="VB"&gt;&lt;br /&gt;Sub Click(s As Object, e As EventArgs)&lt;br /&gt;myimage.Src = "welcome.gif"&lt;br /&gt;End Sub&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;C#&lt;br /&gt;&lt;script runat="server" language="C#"&gt;&lt;br /&gt;void Click(Object s, EventArgs e) {&lt;br /&gt;myimage.Src = "welcome.gif";&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;What will happen if these controls are placed on a page along with the script&lt;br /&gt;block? First of all, the image arrow.gif will appear. When the HtmlButton&lt;br /&gt;control is clicked, it changes to welcome.gif. Behind the scenes, the ServerClick&lt;br /&gt;event is raised when the button is clicked, thus the Click() subroutine is called,&lt;br /&gt;and the Src property of the HtmlImage control is changed from arrow.gif to&lt;br /&gt;welcome.gif.&lt;br /&gt;HtmlGenericControl&lt;br /&gt;The HtmlGenericControl creates a server-side control for HTML tags that do&lt;br /&gt;not have an HTML control associated with them. Perfect examples of this are&lt;br /&gt;the &lt;span&gt; and &lt;div&gt; tags. The following example illustrates how you can&lt;br /&gt;89 Order the print version of this book to get all 700+ pages!&lt;br /&gt;HtmlImage&lt;br /&gt;modify text within a &lt;span&gt; tag to change the content from I like ASP.NET to&lt;br /&gt;Why would anyone need PHP? dynamically.&lt;br /&gt;&lt;span id="myGenericControl" runat="server"&gt;I like ASP.NET&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;button id="myButton" runat="server" onserverclick="Click"&gt;Click&lt;br /&gt;Here&lt;/button&gt;&lt;br /&gt;We simply add the following code to respond to the ServerClick event and&lt;br /&gt;change the text:&lt;br /&gt;VB.NET&lt;br /&gt;&lt;script runat="server" language="VB"&gt;&lt;br /&gt;Sub Click(s As Object, e As EventArgs)&lt;br /&gt;myGenericControl.InnerText = "Why would anyone need PHP?"&lt;br /&gt;End Sub&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;C#&lt;br /&gt;&lt;script runat="server" language="C#"&gt;&lt;br /&gt;void Click(Object s, EventArgs e) {&lt;br /&gt;myGenericControl.InnerText = "Why would anyone need PHP?";&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;HtmlInputButton&lt;br /&gt;The HtmlInputButton control creates a server-side &lt;input type="submit"&gt;,&lt;br /&gt;&lt;input type="reset"&gt;, or &lt;input type="button"&gt; HTML tag.&lt;br /&gt;&lt;input type="submit" value="Click Here" runat="server"&gt;&lt;br /&gt;&lt;input type="reset" value="Click Here" runat="server"&gt;&lt;br /&gt;&lt;input type="button" value="Click Here" runat="server"&gt;&lt;br /&gt;As with HtmlButton, you can assign a server-side event handler to controls of&lt;br /&gt;this type with the OnServerClick attribute.&lt;br /&gt;HtmlInputCheckBox&lt;br /&gt;The HtmlInputCheckBox control creates a server-side &lt;input type="checkbox"&gt;&lt;br /&gt;HTML tag.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 90&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;&lt;input type="checkbox" id="cb1" value="ASP.NET" runat="server"&lt;br /&gt;/&gt;ASP.NET&lt;br /&gt;&lt;br /&gt;&lt;input type="checkbox" id="cb2" value="PHP" runat="server"&lt;br /&gt;/&gt;PHP&lt;br /&gt;&lt;br /&gt;&lt;input type="checkbox" id="cb3" value="JSP" runat="server"&lt;br /&gt;/&gt;JSP&lt;br /&gt;&lt;br /&gt;&lt;input type="checkbox" id="cb4" value="CGI" runat="server"&lt;br /&gt;/&gt;CGI&lt;br /&gt;&lt;br /&gt;&lt;input type="checkbox" id="cb5" value="Coldfusion" runat="server"&lt;br /&gt;/&gt;Coldfusion&lt;br /&gt;&lt;br /&gt;The HtmlInputCheckBox control is the perfect choice when you want to allow&lt;br /&gt;your users to select multiple items from a list.&lt;br /&gt;HtmlInputFile&lt;br /&gt;The HtmlInputFile control creates a server-side &lt;input type="file"&gt; tag in&lt;br /&gt;the HTML. This displays a text box and Browse button to allow users to upload&lt;br /&gt;files from ASP.NET pages. There is no Web control equivalent for this tag, so&lt;br /&gt;it’s typically required when working with file uploads—even with Web Forms&lt;br /&gt;(which we’ll discuss shortly).&lt;br /&gt;&lt;input type="file" id="fileUpload" runat="server"&gt;&lt;br /&gt;HtmlInputHidden&lt;br /&gt;The HtmlInputHidden control creates a server-side &lt;input type="hidden"&gt; tag.&lt;br /&gt;&lt;input type="hidden" id="hiddenField" runat="server"&gt;&lt;br /&gt;Try viewing the source of any one of your ASP.NET pages from your browser,&lt;br /&gt;and you’re likely to find this tag being used to store view state information.&lt;br /&gt;HtmlInputImage&lt;br /&gt;The HtmlInputImage control creates a server-side &lt;input type="image"&gt; tag.&lt;br /&gt;&lt;input type="image" id="imgMap" runat="server"&lt;br /&gt;src="ButtonImage.jpg" /&gt;&lt;br /&gt;This tag provides an alternative to the HtmlInputButton control. They both&lt;br /&gt;function in the same way; the difference is that the HtmlInputImage control uses&lt;br /&gt;a custom image rather than the beveled gray Windows-style button. The mouse&lt;br /&gt;91 Order the print version of this book to get all 700+ pages!&lt;br /&gt;HtmlInputFile&lt;br /&gt;coordinates are also sent along with the form submission when the user clicks a&lt;br /&gt;control of this type.&lt;br /&gt;HtmlInputRadioButton&lt;br /&gt;The HtmlInputRadioButton control creates a server-side radio button. The following&lt;br /&gt;code, for instance, offers a choice of Male or Female:&lt;br /&gt;Gender?&lt;br /&gt;&lt;br /&gt;&lt;input type="radio" id="radio1" runat="server"&gt;Male&lt;br /&gt;&lt;br /&gt;&lt;input type="radio" id="radio2" runat="server"&gt;Female&lt;br /&gt;Similar to the HtmlInputCheckBox control, the HtmlInputRadioButton control&lt;br /&gt;creates a list of items for users to choose from. The difference, however, is that&lt;br /&gt;the user is only able to select one item at a time.&lt;br /&gt;HtmlInputText&lt;br /&gt;The HtmlInputText control creates a server-side &lt;input type="text"&gt; or &lt;input&lt;br /&gt;type="password"&gt; tag.&lt;br /&gt;Please Login&lt;br /&gt;&lt;br /&gt;Username:&lt;br /&gt;&lt;br /&gt;&lt;input type="text" id="username" runat="server"&gt;&lt;br /&gt;&lt;br /&gt;Password:&lt;br /&gt;&lt;br /&gt;&lt;input type="password" id="password" runat="server"&gt;&lt;br /&gt;The preceding code creates a typical login screen layout.&lt;br /&gt;HtmlSelect&lt;br /&gt;The HtmlSelect control creates a server-side version of the &lt;select&gt; tag for&lt;br /&gt;creating drop-down lists or list boxes. The following code creates a drop-down&lt;br /&gt;menu:&lt;br /&gt;Select your favorite movie:&lt;br /&gt;&lt;br /&gt;&lt;select id="selectMovie" runat="server"&gt;&lt;br /&gt;&lt;option&gt;Star Wars&lt;/option&gt;&lt;br /&gt;&lt;option&gt;Spider Man&lt;/option&gt;&lt;br /&gt;&lt;option&gt;The Godfather&lt;/option&gt;&lt;br /&gt;&lt;option&gt;Lord of the Rings&lt;/option&gt;&lt;br /&gt;&lt;/select&gt;&lt;br /&gt;Order the print version of this book to get all 700+ pages! 92&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;The following code creates a multiple-selection list box:&lt;br /&gt;Which of these movies do you like?&lt;br /&gt;&lt;br /&gt;&lt;select id="selectMovie" runat="server" multiple="true" size="4"&gt;&lt;br /&gt;&lt;option&gt;Star Wars&lt;/option&gt;&lt;br /&gt;&lt;option&gt;Spider Man&lt;/option&gt;&lt;br /&gt;&lt;option&gt;The Godfather&lt;/option&gt;&lt;br /&gt;&lt;option&gt;Lord of the Rings&lt;/option&gt;&lt;br /&gt;&lt;/select&gt;&lt;br /&gt;You’ll notice the &lt;option&gt; tag within the main &lt;select&gt; tag; this is used to denote&lt;br /&gt;each item to appear in the list box or drop-down menu.&lt;br /&gt;HtmlTable, HtmlTableRow and HtmlTableCell&lt;br /&gt;The HtmlTable, HtmlTableRow, and HtmlTableCell controls create server-side&lt;br /&gt;versions of the &lt;table&gt;, &lt;tr&gt;, &lt;td&gt;, and &lt;th&gt; tags. The following code creates&lt;br /&gt;a server-side table:&lt;br /&gt;&lt;table id="myTable" border="1" cellspacing="0" cellpadding="0"&lt;br /&gt;runat="server"&gt;&lt;br /&gt;&lt;tr runat="server" id="row1"&gt;&lt;br /&gt;&lt;td runat="server" id="cell1"&gt;Table Data 1&lt;/td&gt;&lt;br /&gt;&lt;td runat="server" id="cell2"&gt;Table Data 2&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr runat="server" id="row2"&gt;&lt;br /&gt;&lt;td runat="server" id="cell3"&gt;Table Data 3&lt;/td&gt;&lt;br /&gt;&lt;td runat="server" id="cell4"&gt;Table Data 4&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;button id="myButton" onserverclick="Click" runat="server"&gt;Click&lt;br /&gt;Here&lt;/button&gt;&lt;br /&gt;You could add the following code to respond to the Click event raised by the&lt;br /&gt;HtmlButton control and change the content of the first cell to read "Hello World."&lt;br /&gt;VB.NET&lt;br /&gt;&lt;script runat="server" language="VB"&gt;&lt;br /&gt;Sub Click(s As Object, e As EventArgs)&lt;br /&gt;cell1.InnerText = "Hello World"&lt;br /&gt;End Sub&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;93 Order the print version of this book to get all 700+ pages!&lt;br /&gt;HtmlTable, HtmlTableRow and HtmlTableCell&lt;br /&gt;C#&lt;br /&gt;&lt;script runat="server" language="C#"&gt;&lt;br /&gt;void Click(Object s, EventArgs e) {&lt;br /&gt;cell1.InnerText = "Hello World";&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;HtmlTextArea&lt;br /&gt;The HtmlTextArea control creates a server-side version of the &lt;textarea&gt; tag.&lt;br /&gt;&lt;textarea cols="60" rows="10" runat="server"&gt;&lt;/textarea&gt;&lt;br /&gt;We’ve glanced only briefly over the HTML controls, as they should all be fairly&lt;br /&gt;familiar from your experience with HTML. But if you’d like more information&lt;br /&gt;on the HTML controls including the properties, methods, and events for each,&lt;br /&gt;see Appendix A.&lt;br /&gt;Processing a Simple Form&lt;br /&gt;Now that you have a basic understanding of ASP.NET page structure, the languages&lt;br /&gt;VB.NET and C#, and HTML controls, let’s put everything together and&lt;br /&gt;create a simple ASP.NET application. The application that we will create, in&lt;br /&gt;VB.NET and C#, will be a simple survey form that uses the following HTML&lt;br /&gt;controls:&lt;br /&gt; HtmlForm&lt;br /&gt; HtmlButton&lt;br /&gt; HtmlInputText&lt;br /&gt; HtmlSelect&lt;br /&gt;Let’s begin by creating a new file within your favorite code editor. The following&lt;br /&gt;code creates the visual interface for the survey:&lt;br /&gt;File: SimpleForm.aspx (excerpt)&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;…&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;Order the print version of this book to get all 700+ pages! 94&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;h2&gt;Take the Survey!&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;Name:&lt;br /&gt;&lt;br /&gt;&lt;input type="text" id="txtName" runat="server"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Email:&lt;br /&gt;&lt;br /&gt;&lt;input type="text" id="txtEmail" runat="server"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Which server technologies do you use?&lt;br /&gt;&lt;br /&gt;&lt;select id="servermodel" runat="server" multiple="true"&gt;&lt;br /&gt;&lt;option&gt;ASP.NET&lt;/option&gt;&lt;br /&gt;&lt;option&gt;PHP&lt;/option&gt;&lt;br /&gt;&lt;option&gt;JSP&lt;/option&gt;&lt;br /&gt;&lt;option&gt;CGI&lt;/option&gt;&lt;br /&gt;&lt;option&gt;Coldfusion&lt;/option&gt;&lt;br /&gt;&lt;/select&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Do you like .NET so far?&lt;br /&gt;&lt;br /&gt;&lt;select id="likedotnet" runat="server"&gt;&lt;br /&gt;&lt;option&gt;Yes&lt;/option&gt;&lt;br /&gt;&lt;option&gt;No&lt;/option&gt;&lt;br /&gt;&lt;/select&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;button id="myButton" onserverclick="Click" runat="server"&gt;&lt;br /&gt;Confirm&lt;/button&gt;&lt;/p&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;From what we’ve already covered on HTML controls, you should have a good&lt;br /&gt;idea of what this page will look like. All we’ve done is place some HtmlInputText&lt;br /&gt;controls, an HtmlButton control, and an HtmlSelect control inside the obligatory&lt;br /&gt;HtmlForm control. Remember, HTML controls are essentially just HTML tags&lt;br /&gt;with the runat="server" attribute. When it’s complete, the interface will resemble&lt;br /&gt;Figure 4.1.&lt;br /&gt;95 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Processing a Simple Form&lt;br /&gt;Figure 4.1. Create the interface of the ASP.NET page using HTML&lt;br /&gt;controls.&lt;br /&gt;When users click the button, we’ll simply display their responses in their browsers.&lt;br /&gt;In a real application, we’d probably be more likely to save this to a database and&lt;br /&gt;perhaps show the results as a chart. Whatever the case, we’d access the properties&lt;br /&gt;of the HTML controls as shown in the following code:&lt;br /&gt;VB.NET File: SimpleForm.aspx (excerpt)&lt;br /&gt;&lt;script runat="server" language="VB"&gt;&lt;br /&gt;Sub Click(s As Object, e As EventArgs)&lt;br /&gt;Response.Write("Your name is: " &amp; txtName.value &amp;amp; "&lt;br /&gt;")&lt;br /&gt;Response.Write("Your email is: " &amp; txtEmail.value &amp;amp; "&lt;br /&gt;")&lt;br /&gt;Response.Write("You like to work with: " &amp; servermodel.value &amp;amp; _&lt;br /&gt;"&lt;br /&gt;")&lt;br /&gt;Response.Write("You like .NET: " &amp; likedotnet.value)&lt;br /&gt;End Sub&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;Order the print version of this book to get all 700+ pages! 96&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;C# File: SimpleForm.aspx (excerpt)&lt;br /&gt;&lt;script runat="server" language="C#"&gt;&lt;br /&gt;void Click(Object s, EventArgs e) {&lt;br /&gt;Response.Write("Your name is: " + txtName.Value + "&lt;br /&gt;");&lt;br /&gt;Response.Write("Your email is: " + txtEmail.Value + "&lt;br /&gt;");&lt;br /&gt;Response.Write("You like to work with: " + servermodel.Value +&lt;br /&gt;"&lt;br /&gt;");&lt;br /&gt;Response.Write("You like .NET: " + likedotnet.Value);&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;Just as you’ve seen with examples from previous chapters, we place our VB.NET&lt;br /&gt;and C# code inside a server-side script block within the &lt;head&gt; part of the page.&lt;br /&gt;Next, we create a new Click event handler which takes the two usual parameters.&lt;br /&gt;Finally, we use the Response object’s Write() method to print out the user’s responses&lt;br /&gt;within the page.&lt;br /&gt;Once you’ve written the code, you can save your work and test the results from&lt;br /&gt;your browser. Enter some information and click the button. What you type in&lt;br /&gt;should appear at the top of the page when the button is clicked.&lt;br /&gt;Introduction to Web Forms&lt;br /&gt;With the inception of new technologies, there’s always new terminology to&lt;br /&gt;master. ASP.NET is no different. With ASP.NET, even the simplest terms that&lt;br /&gt;were previously used to describe a Web page have changed to reflect the processes&lt;br /&gt;that occur within them. Before we begin to describe the process followed by Web&lt;br /&gt;Forms, let’s discuss the foundation concept of Web pages.&lt;br /&gt;On the most basic level, a Web page is a text file that contains markup. Web&lt;br /&gt;pages are meant to be viewed from a browser window, which parses the file containing&lt;br /&gt;markup to present the information to the user in the layout envisaged&lt;br /&gt;by the developer. Web pages can include text, video, sound, animations, graphics,&lt;br /&gt;and even chunks of "code" from a variety of technologies.&lt;br /&gt;An HTML form, as you learned in the previous sections, is a page that contains&lt;br /&gt;one or more form elements grouped together within an HTML &lt;form&gt; tag. Users&lt;br /&gt;interact with the various form elements to make certain choices, or provide certain&lt;br /&gt;information; this information is then sent to the server for processing upon the&lt;br /&gt;click of a submit button. This is useful to us as ASP.NET developers because&lt;br /&gt;regular HTML forms have a built-in mechanism that allows forms to be submitted&lt;br /&gt;to the server. Once the form has been submitted, some kind of extra techno-&lt;br /&gt;97 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Introduction to Web Forms&lt;br /&gt;logy—in this case, ASP.NET—needs to be present on the server to perform the&lt;br /&gt;actual form processing.&lt;br /&gt;In ASP.NET, we call Web pages Web Forms; they contain presentational elements&lt;br /&gt;(ASP.NET Web controls) in an HTML form, as well as any code (the&lt;br /&gt;processing logic) we’ve added for the page’s dynamic features.&lt;br /&gt;A typical Web Form is shown in Figure 4.2:&lt;br /&gt;Figure 4.2. A Web Form contains code for processing logic and&lt;br /&gt;Web controls for presentational purposes.&lt;br /&gt;The next section looks at the various Web controls and how they may be used&lt;br /&gt;within your Web Forms. They’re very similar in appearance to HTML, so you&lt;br /&gt;shouldn’t have any trouble coming to grips with them.&lt;br /&gt;Introduction to Web Controls&lt;br /&gt;As we’ve just seen, Web Forms allow users to interact with our site using Web&lt;br /&gt;controls. With Web controls, Microsoft basically reinvented HTML from scratch.&lt;br /&gt;For example, it created two different Web controls that correspond to the two&lt;br /&gt;different versions of the HTML &lt;select&gt; tag: a DropDownList control and a&lt;br /&gt;ListBox control. This means there isn’t a direct one-to-one correspondence&lt;br /&gt;Order the print version of this book to get all 700+ pages! 98&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;between the Web controls and standard HTML tags, as there is with HTML&lt;br /&gt;controls. Web controls follow the same basic pattern as HTML tags, but the tag&lt;br /&gt;name is preceded by asp: and the name is capitalized using "CamelCasing."&lt;br /&gt;Consider the HTML &lt;input&gt; tag, which creates an input text box on screen:&lt;br /&gt;&lt;input type="text" name="username" size="30"&gt;&lt;br /&gt;The equivalent Web control is the TextBox control, and it would look like this:&lt;br /&gt;&lt;asp:textbox id="username" columns="30" runat="server"&gt;&lt;br /&gt;&lt;/asp:TextBox&gt;&lt;br /&gt;Note that, unlike many HTML tags, Web controls always require a closing tag&lt;br /&gt;(the &lt;/asp:TextBox&gt; part above). We can also use the shorthand /&gt; syntax if&lt;br /&gt;our Web control tag doesn’t contain anything between its opening and closing&lt;br /&gt;tags. So, we could also write this TextBox like so:&lt;br /&gt;&lt;asp:textbox id="username" columns="30" runat="server"&gt;&lt;br /&gt;To sum up, the key points to remember when working with Web controls are:&lt;br /&gt; All Web controls must be placed within a &lt;form runat="server"&gt; tag to&lt;br /&gt;function properly.&lt;br /&gt; All Web controls require id and runat="server" properties to function&lt;br /&gt;properly.&lt;br /&gt; All Web controls follow the same pattern, but different properties (attributes)&lt;br /&gt;are available to different controls.&lt;br /&gt; They all start with the asp prefix, followed by a colon.&lt;br /&gt;There are more Web controls than HTML controls, and some offer advanced&lt;br /&gt;features that simply aren’t available in HTML alone. Controls that we’ll discuss&lt;br /&gt;in this and future chapters are as follows:&lt;br /&gt; basic Web controls (Chapter 4)&lt;br /&gt; validation Web controls (Chapter 5)&lt;br /&gt; data controls (Chapter 9)&lt;br /&gt; user controls (Chapter 16)&lt;br /&gt;99 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Introduction to Web Controls&lt;br /&gt; rich controls (Chapter 16)&lt;br /&gt;Basic Web Controls&lt;br /&gt;The basic Web controls perform the on-screen layout of a Web page, and mirror&lt;br /&gt;in many ways the HTML controls that are based on regular HTML. However,&lt;br /&gt;they offer some new refinements and enhancements, and should be used in place&lt;br /&gt;of HTML whenever possible. In this section, we’ll look at the controls in this&lt;br /&gt;group, namely:&lt;br /&gt; Label&lt;br /&gt; TextBox&lt;br /&gt; Button&lt;br /&gt; Image&lt;br /&gt; ImageButton&lt;br /&gt; LinkButton&lt;br /&gt; HyperLink&lt;br /&gt; RadioButton&lt;br /&gt; RadioButtonList&lt;br /&gt; CheckBox&lt;br /&gt; CheckBoxList&lt;br /&gt; DropDownList&lt;br /&gt; ListBox&lt;br /&gt; Panel&lt;br /&gt; PlaceHolder&lt;br /&gt;Order the print version of this book to get all 700+ pages! 100&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;Label&lt;br /&gt;The easiest way to display static text on your page is simply to add the text to&lt;br /&gt;the body of the page without enclosing it in any tag. However, if you want to&lt;br /&gt;modify the text displayed on a page from ASP.NET code, you can display your&lt;br /&gt;text within a Label control. Here’s a typical example:&lt;br /&gt;&lt;asp:label id="lblMessage" text="" runat="server"&gt;&lt;br /&gt;The following code sets the Text property of the Label control to display the&lt;br /&gt;text “Hello World”:&lt;br /&gt;VB.NET&lt;br /&gt;Public Sub Page_Load()&lt;br /&gt;lblMessage.Text = "Hello World"&lt;br /&gt;End Sub&lt;br /&gt;C#&lt;br /&gt;public void Page_Load() {&lt;br /&gt;lblMessage.Text = "Hello World";&lt;br /&gt;}&lt;br /&gt;Reading this Page_Load() handler code, we can see that when the page first&lt;br /&gt;loads, the Text property of the Label control with the ID of lblMessage will be&lt;br /&gt;set to “Hello World.”&lt;br /&gt;TextBox&lt;br /&gt;The TextBox control is used to create on screen a box in which the user can type&lt;br /&gt;or read standard text. This Web control can be set to display a standard HTML&lt;br /&gt;text input field, an HTML password field, or an HTML text area, using the&lt;br /&gt;TextMode property. The following code shows how we might use it in a simple&lt;br /&gt;login page:&lt;br /&gt;&lt;p&gt;Username:&lt;br /&gt;&lt;asp:TextBox id="txtUser" TextMode="SingleLine" Columns="30"&lt;br /&gt;runat="server" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Password:&lt;br /&gt;&lt;asp:TextBox id="txtPassword" TextMode="Password" Columns="30"&lt;br /&gt;runat="server" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Comments:&lt;br /&gt;101 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Label&lt;br /&gt;&lt;asp:TextBox id="txtComments" TextMode="MultiLine" Columns="30"&lt;br /&gt;Rows="10" runat="server" /&gt;&lt;/p&gt;&lt;br /&gt;In each of the three instances above, the attribute TextMode dictates the kind of&lt;br /&gt;text box to render.&lt;br /&gt;Button&lt;br /&gt;By default, the Button control renders the same form submit button that’s&lt;br /&gt;rendered by the HTML &lt;input type="Submit"&gt; tag. When a button is clicked,&lt;br /&gt;the form containing the button is submitted to the server for processing, and&lt;br /&gt;both click and command events are raised. The following code displays a Button&lt;br /&gt;control and a Label:&lt;br /&gt;&lt;asp:Button id="btnSubmit" Text="Submit" runat="server"&lt;br /&gt;OnClick="WriteText" /&gt;&lt;br /&gt;&lt;asp:label id="lblMessage" runat="server"&gt;&lt;br /&gt;Notice the OnClick attribute on the control. Unlike the HtmlButton HTML&lt;br /&gt;control, OnClick assigns a server-side event handler—there is no need to remember&lt;br /&gt;to use OnServerClick. When the button is clicked, the Click event is raised and&lt;br /&gt;the WriteText() subroutine is called. The WriteText() subroutine will contain&lt;br /&gt;the code that performs the intended function for this button, such as displaying&lt;br /&gt;a message for the user:&lt;br /&gt;VB.NET&lt;br /&gt;Public Sub WriteText(s As Object, e As EventArgs)&lt;br /&gt;lblMessage.Text = "Hello World"&lt;br /&gt;End Sub&lt;br /&gt;C#&lt;br /&gt;public void WriteText(Object s, EventArgs e) {&lt;br /&gt;lblMessage.Text = "Hello World";&lt;br /&gt;}&lt;br /&gt;It’s important to realize that most Web controls have events associated with&lt;br /&gt;them, and the basic idea and techniques are the same as for the Click event of&lt;br /&gt;the Button control.&lt;br /&gt;Image&lt;br /&gt;An Image control places on the page an image that can be accessed dynamically&lt;br /&gt;from code; it equates to the &lt;img&gt; tag in HTML. Here’s an example:&lt;br /&gt;Order the print version of this book to get all 700+ pages! 102&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;&lt;asp:Image id="myImage" ImageUrl="mygif.gif" runat="server"&lt;br /&gt;AlternateText="description" /&gt;&lt;br /&gt;ImageButton&lt;br /&gt;An ImageButton control is similar to a Button control, but it uses an image you&lt;br /&gt;supply in place of the typical gray Windows-style button. For example:&lt;br /&gt;&lt;asp:ImageButton id="myImgButton" ImageUrl="myButton.gif"&lt;br /&gt;runat="server" /&gt;&lt;br /&gt;LinkButton&lt;br /&gt;A LinkButton control renders a hyperlink on your page. From the point of view&lt;br /&gt;of ASP.NET code, LinkButtons can be treated in much the same way as buttons,&lt;br /&gt;hence the name.&lt;br /&gt;&lt;asp:LinkButton id="myLinkButon" Text="Click Here" runat="server"&lt;br /&gt;/&gt;&lt;br /&gt;HyperLink&lt;br /&gt;The HyperLink control, which is similar to the LinkButton control, creates a&lt;br /&gt;hyperlink on your page. It’s simpler and faster to process than LinkButton, but,&lt;br /&gt;unlike the LinkButton control, which offers features such as Click events and&lt;br /&gt;validation, HyperLink can be used only to click and navigate from one page to&lt;br /&gt;the next.&lt;br /&gt;&lt;asp:HyperLink id="myLink" NavigateUrl="http://www.example.com/"&lt;br /&gt;ImageUrl="myButton.gif" runat="server"&gt;My Link&lt;/asp:HyperLink&gt;&lt;br /&gt;The ImageUrl attribute, if specified, causes the control to display a linked image&lt;br /&gt;instead of the text provided.&lt;br /&gt;RadioButton&lt;br /&gt;You can add individual radio buttons to your page one by one, using the&lt;br /&gt;RadioButton control. Radio buttons are grouped together using the GroupName&lt;br /&gt;property. Only one RadioButton control from each group can be selected at a&lt;br /&gt;time.&lt;br /&gt;&lt;asp:RadioButton id="radSanDiego" GroupName="City"&lt;br /&gt;Text="San Diego" runat="server" /&gt;&lt;br /&gt;103 Order the print version of this book to get all 700+ pages!&lt;br /&gt;ImageButton&lt;br /&gt;&lt;asp:RadioButton id="radBoston" GroupName="City" Text="Boston"&lt;br /&gt;runat="server" /&gt;&lt;br /&gt;&lt;asp:RadioButton id="radPhoenix" GroupName="City" Text="Phoenix"&lt;br /&gt;runat="server" /&gt;&lt;br /&gt;&lt;asp:RadioButton id="radSeattle" GroupName="City" Text="Seattle"&lt;br /&gt;runat="Server" /&gt;&lt;br /&gt;The main event associated with RadioButtons is the CheckChanged event; which&lt;br /&gt;can be handled with the OnCheckChanged attribute.&lt;br /&gt;RadioButtonList&lt;br /&gt;Like the RadioButton control, the RadioButtonList control represents radio&lt;br /&gt;buttons. However, the RadioButtonList control represents a list of radio buttons&lt;br /&gt;and uses more compact syntax. Here’s an example:&lt;br /&gt;&lt;asp:radiobuttonlist id="radlFavColor" runat="server"&gt;&lt;br /&gt;&lt;asp:listitem text="Red" value="red"&gt;&lt;br /&gt;&lt;asp:listitem text="Blue" value="blue"&gt;&lt;br /&gt;&lt;asp:listitem text="Green" value="green"&gt;&lt;br /&gt;&lt;/asp:RadioButtonList&gt;&lt;br /&gt;One of the great features of the RadioButtonList is its ability to bind to a data&lt;br /&gt;source. For instance, imagine you have a list of employees in a database. You&lt;br /&gt;could create a page that binds a selection from that database to the&lt;br /&gt;RadioButtonList control, to list dynamically certain employees within the control.&lt;br /&gt;The user would then be able to select one (and only one) employee from that&lt;br /&gt;list, and our code could determine the choice.&lt;br /&gt;The most useful event produced by RadioButtonList is the&lt;br /&gt;SelectedIndexChanged event, to which you can assign a handler with the OnSelectedIndexChanged&lt;br /&gt;attribute&lt;br /&gt;CheckBox&lt;br /&gt;You can use a CheckBox control to represent a choice that can be only a yes&lt;br /&gt;(checked) or no (unchecked) value.&lt;br /&gt;&lt;asp:CheckBox id="chkQuestion" Text="I like .NET!" runat="server"&lt;br /&gt;/&gt;&lt;br /&gt;As with the RadioButton control, he main event associated with a CheckBox is&lt;br /&gt;the CheckChanged event; which can be handled with the OnCheckChanged attribute.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 104&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;CheckBoxList&lt;br /&gt;As you may have guessed, the CheckBoxList control represents a group of check&lt;br /&gt;boxes; it’s equivalent to using several CheckBox controls in row:&lt;br /&gt;&lt;asp:checkboxlist id="chklFavDrinks" runat="server"&gt;&lt;br /&gt;&lt;asp:listitem text="Pizza" value="pizza"&gt;&lt;br /&gt;&lt;asp:listitem text="Tacos" value="tacos"&gt;&lt;br /&gt;&lt;asp:listitem text="Pasta" value="pasta"&gt;&lt;br /&gt;&lt;/asp:CheckBoxList&gt;&lt;br /&gt;Like the RadioButtonList control, the CheckBoxList control has the capability&lt;br /&gt;to bind to a data source, and produces a SelectedIndexChanged event that you&lt;br /&gt;can handle with OnSelectedIndexChanged.&lt;br /&gt;DropDownList&lt;br /&gt;A DropDownList control is similar to the HTML &lt;select&gt; tag. The DropDownList&lt;br /&gt;control allows you to select one item from a list using a drop-down menu.&lt;br /&gt;&lt;asp:dropdownlist id="ddlFavColor" runat="server"&gt;&lt;br /&gt;&lt;asp:listitem text="Red" value="red"&gt;&lt;br /&gt;&lt;asp:listitem text="Blue" value="blue"&gt;&lt;br /&gt;&lt;asp:listitem text="Green" value="green"&gt;&lt;br /&gt;&lt;/asp:DropDownList&gt;&lt;br /&gt;As is the case with other collection-based controls, such as the CheckBoxList&lt;br /&gt;and RadioButtonList controls, the DropDownList control can be bound to a&lt;br /&gt;database, thus allowing you to extract dynamic content into a drop-down menu.&lt;br /&gt;The main event produced by this control, as you might expect, is&lt;br /&gt;SelectedIndexChanged, handled with OnSelectedIndexChanged.&lt;br /&gt;ListBox&lt;br /&gt;A ListBox control equates to the HTML &lt;select&gt; tag with the size attribute&lt;br /&gt;set to 2 or more. The ListBox control allows you to select items from a multiline&lt;br /&gt;menu. If you set the SelectionMode attribute to Multiple, the user will be able&lt;br /&gt;to select more than one item from the list, as in this example:&lt;br /&gt;&lt;asp:ListBox id="listTechnologies" runat="server"&lt;br /&gt;SelectionMode="Multiple"&gt;&lt;br /&gt;&lt;asp:listitem text="ASP.NET" value="aspnet"&gt;&lt;br /&gt;&lt;asp:listitem text="JSP" value="jsp"&gt;&lt;br /&gt;&lt;asp:listitem text="PHP" value="php"&gt;&lt;br /&gt;105 Order the print version of this book to get all 700+ pages!&lt;br /&gt;CheckBoxList&lt;br /&gt;&lt;asp:listitem text="CGI" value="cgi"&gt;&lt;br /&gt;&lt;asp:listitem text="Coldfusion" value="cf"&gt;&lt;br /&gt;&lt;/asp:ListBox&gt;&lt;br /&gt;Again, because the ListBox control is a collection-based control, it can be dynamically&lt;br /&gt;bound to a data source. The most useful event that this control provides&lt;br /&gt;is—you guessed it—SelectedIndexChanged, with the corresponding OnSelectedIndexChanged&lt;br /&gt;attribute.&lt;br /&gt;Panel&lt;br /&gt;The Panel control functions similarly to the &lt;div&gt; tag in HTML, in that the set&lt;br /&gt;of items that resides within the tag can be manipulated as a group. For instance,&lt;br /&gt;the Panel could be made visible or hidden by a Button’s Click event:&lt;br /&gt;&lt;asp:panel id="pnlMyPanel" runat="server"&gt;&lt;br /&gt;&lt;p&gt;Username:&lt;br /&gt;&lt;asp:textbox id="txtUsername" columns="30" runat="server"&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Password:&lt;br /&gt;&lt;asp:TextBox id="txtPassword" TextMode="Password"&lt;br /&gt;Columns="30" runat="server" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/asp:Panel&gt;&lt;br /&gt;&lt;asp:Button id="btnHide" Text="Hide Panel" OnClick="HidePanel"&lt;br /&gt;runat="server" /&gt;&lt;br /&gt;The code above creates two TextBox controls within a Panel control. The Button&lt;br /&gt;control is outside of the panel. The HidePanel() subroutine would then control&lt;br /&gt;the Panel’s visibility by setting its Visible property to False:&lt;br /&gt;VB.NET&lt;br /&gt;Public Sub HidePanel(s As Object, e As EventArgs)&lt;br /&gt;pnlMyPanel.Visible = False&lt;br /&gt;End Sub&lt;br /&gt;C#&lt;br /&gt;public void HidePanel(Object s, EventArgs e) {&lt;br /&gt;pnlMyPanel.Visible = false;&lt;br /&gt;}&lt;br /&gt;In this case, when the user clicks the button, the Click event is raised and the&lt;br /&gt;HidePanel() subroutine is called, which sets the Visible property of the Panel&lt;br /&gt;control to False.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 106&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;PlaceHolder&lt;br /&gt;The PlaceHolder control lets us add elements at a particular place on a page at&lt;br /&gt;any time, dynamically, through code.&lt;br /&gt;&lt;asp:placeholder id="phMyPlaceHolder" runat="server"&gt;&lt;br /&gt;The following code dynamically adds a new HtmlButton control within the place&lt;br /&gt;holder.&lt;br /&gt;VB.NET&lt;br /&gt;Public Sub Page_Load()&lt;br /&gt;Dim btnButton As HtmlButton = New HtmlButton()&lt;br /&gt;btnButton.InnerText = "My New Button"&lt;br /&gt;phMyPlaceHolder.Controls.Add(btnButton)&lt;br /&gt;End Sub&lt;br /&gt;C#&lt;br /&gt;public void Page_Load() {&lt;br /&gt;HtmlButton btnButton = new HtmlButton();&lt;br /&gt;btnButton.InnerText = "My New Button";&lt;br /&gt;phMyPlaceHolder.Controls.Add(btnButton);&lt;br /&gt;}&lt;br /&gt;That’s it for our quick tour of the basic Web controls. For more information on&lt;br /&gt;Web controls, including the properties, methods, and events for each, have a&lt;br /&gt;look at Appendix B.&lt;br /&gt;Handling Page Navigation&lt;br /&gt;Links from page to page are what drives the Web. Without linking, the Web&lt;br /&gt;would be little more than a simple page-based information source. Links enable&lt;br /&gt;us to move effortlessly from page to page with a single click; they bridge the gaps&lt;br /&gt;between related ideas, regardless of the boundaries imposed by geography and&lt;br /&gt;politics. This section focuses on page navigability using:&lt;br /&gt; the HyperLink control&lt;br /&gt; navigation objects and their methods&lt;br /&gt;Suppose for a minute that you have created a Website that allows your users to&lt;br /&gt;choose from a selection of items on one page. You could call this page viewcatalog.&lt;br /&gt;aspx. Imagine that you have a second page, called viewcart.aspx. Once&lt;br /&gt;107 Order the print version of this book to get all 700+ pages!&lt;br /&gt;PlaceHolder&lt;br /&gt;users select an item from viewcatalog.aspx, you’d probably want to link them&lt;br /&gt;directly to viewcart.aspx so that they can keep track of their orders. To achieve&lt;br /&gt;this, we clearly must pass the information from the viewcatalog.aspx page over&lt;br /&gt;to the viewcart.aspx page.&lt;br /&gt;Using The HyperLink Control&lt;br /&gt;The HyperLink control creates a simple HTML hyperlink on a page. Once it’s&lt;br /&gt;clicked, the user is redirected to the page specified by the NavigateUrl property.&lt;br /&gt;For instance:&lt;br /&gt;&lt;asp:HyperLink id="hlAddToCart" NavigateUrl="viewcart.aspx"&lt;br /&gt;runat="server" Text="View Cart" /&gt;&lt;br /&gt;Here, the NavigateUrl property specifies that this link leads to the page called&lt;br /&gt;viewcart.aspx. Figure 4.3 shows how the HyperLink control is rendered in the&lt;br /&gt;browser.&lt;br /&gt;Figure 4.3. The HyperLink control renders similar to the anchor&lt;br /&gt;tag in the browser.&lt;br /&gt;However, once we’ve arrived at the new page, it has no way of accessing the information&lt;br /&gt;from the first page. If we need to provide the user some continuity of&lt;br /&gt;information, we need something else.&lt;br /&gt;Navigation Objects And Their Methods&lt;br /&gt;The previous example rendered a simple control similar to the HTML anchor&lt;br /&gt;tag. Once the link is followed, however, we have no record of the previous page&lt;br /&gt;or any data it contained (the Web is a stateless technology).&lt;br /&gt;Order the print version of this book to get all 700+ pages! 108&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;If we wish to pass information from one page to the next, we can use one of the&lt;br /&gt;three methods listed below to create the link between the pages:&lt;br /&gt;Response.Redirect() Navigates to a second page from code. This is equivalent&lt;br /&gt;to using the HyperLink control, but allows us to&lt;br /&gt;set parameters on the query string dynamically.&lt;br /&gt;Server.Transfer() Ends the current Web Form and begins executing a&lt;br /&gt;new Web Form. This method only works when the&lt;br /&gt;user is navigating to a new Web Form page (.aspx).&lt;br /&gt;Server.Execute() Begins executing a new Web Form while displaying&lt;br /&gt;the current Web Form. The contents of both forms&lt;br /&gt;are combined in the response sent to the browser.&lt;br /&gt;Again, this method only works when the user is navigating&lt;br /&gt;to a Web Forms page (.aspx).&lt;br /&gt;The easiest and quickest way to redirect your users from the viewcatalog.aspx&lt;br /&gt;page to the viewcart.aspx page would be using Reponse.Redirect():&lt;br /&gt;VB.NET&lt;br /&gt;Sub linkClk(s As Object, e As EventArgs)&lt;br /&gt;Response.Redirect("viewcart.aspx")&lt;br /&gt;End Sub&lt;br /&gt;C#&lt;br /&gt;void linkClk(Object s, EventArgs e) {&lt;br /&gt;Response.Redirect("viewcart.aspx");&lt;br /&gt;}&lt;br /&gt;You could then use the LinkButton control to call this subroutine as follows:&lt;br /&gt;&lt;asp:LinkButton id="lbAddToCart" Text="Add To Cart"&lt;br /&gt;OnClick="linkClk" runat="server"/&gt;&lt;br /&gt;This time, when you click the LinkButton control, the Click event is raised, the&lt;br /&gt;subroutine is called, and Response.Redirect() is called with the name of the&lt;br /&gt;page we want to link to as a parameter. In this way, we’re redirecting to the new&lt;br /&gt;page directly from the code, rather than by using a particular tag. This enables&lt;br /&gt;us to pass information to the new page in the query string.&lt;br /&gt;The query string is a list of variables and their respective values that we can append&lt;br /&gt;to a page’s URL, allowing us to retrieve those variables and values from&lt;br /&gt;that page’s code.&lt;br /&gt;109 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Navigation Objects And Their Methods&lt;br /&gt;As an illustration, imagine you have a drop-down list that contains the following&lt;br /&gt;product information:&lt;br /&gt;&lt;p&gt;&lt;asp:dropdownlist id="ddlProducts" runat="server"&gt;&lt;br /&gt;&lt;asp:listitem text="Pants"&gt;&lt;br /&gt;&lt;asp:listitem text="Shirt"&gt;&lt;br /&gt;&lt;asp:listitem text="Hat"&gt;&lt;br /&gt;&lt;asp:listitem text="Socks"&gt;&lt;br /&gt;&lt;/asp:DropDownList&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;asp:LinkButton id="lbAddToCart" Text="Add To Cart"&lt;br /&gt;OnClick="linkClk" runat="server" /&gt;&lt;/p&gt;&lt;br /&gt;The code you use to handle link clicks will need to find the item selected in the&lt;br /&gt;drop-down list and append it to the query string of the URL to which the user&lt;br /&gt;is to be redirected, as follows:&lt;br /&gt;VB.NET&lt;br /&gt;Sub linkClk(s As Object, e As EventArgs)&lt;br /&gt;Dim strQueryStr As String = "?Product=" &amp; _&lt;br /&gt;Server.UrlEncode(ddlProducts.SelectedItem.Text)&lt;br /&gt;Response.Redirect("viewcart.aspx" &amp;amp; strQueryStr)&lt;br /&gt;End Sub&lt;br /&gt;C#&lt;br /&gt;void linkClk(Object s, EventArgs e) {&lt;br /&gt;string strQueryStr = "?Product=" +&lt;br /&gt;Server.UrlEncode(ddlProducts.SelectedItem.Text);&lt;br /&gt;Response.Redirect("viewcart.aspx" + strQueryStr);&lt;br /&gt;}&lt;br /&gt;Note the use of the Server.UrlEncode() method, which converts characters not&lt;br /&gt;allowed in query string values (e.g. &amp;) to URL-safe character codes (e.g. %26) that&lt;br /&gt;the browser will understand. You should always use this method when adding&lt;br /&gt;arbitrary values to query strings.&lt;br /&gt;When a user selects an item from the drop-down list and clicks the LinkButton&lt;br /&gt;control, the viewcart.aspx page is opened with the selected product appended&lt;br /&gt;as a parameter of the query string. This is illustrated in Figure 4.4.&lt;br /&gt;Figure 4.4. Append the selected item to the query string.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 110&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;Now that you’ve passed the product to the viewcart.aspx page, you have to&lt;br /&gt;grab it from the query string in the new page. We get hold of variables from the&lt;br /&gt;query string by accessing the Request.QueryString collection, like so:&lt;br /&gt;VB.NET&lt;br /&gt;Sub Page_Load()&lt;br /&gt;lblResult.Text = Request.QueryString("Product")&lt;br /&gt;End Sub&lt;br /&gt;C#&lt;br /&gt;void Page_Load() {&lt;br /&gt;lblResult.Text = Request.QueryString["Product"];&lt;br /&gt;}&lt;br /&gt;Here, we simply display the value of the Product query string parameter, as we&lt;br /&gt;see in Figure 4.5.&lt;br /&gt;Figure 4.5. Set the text property of the label control within a&lt;br /&gt;Page_Load event handler to accept the new parameter value.&lt;br /&gt;Now, when you select a product and add it to the cart, the result is displayed in&lt;br /&gt;the redirected page on a label with an id of lblResult. Now sure, a real product&lt;br /&gt;111 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Navigation Objects And Their Methods&lt;br /&gt;catalog and shopping cart has a lot more to it, but in this section we’ve uncovered&lt;br /&gt;an important building block.&lt;br /&gt;Postback&lt;br /&gt;Postback can be confusing to newcomers because, while most ASP.NET developers&lt;br /&gt;know what it is, they can’t seem to explain it clearly. The topics we’ve covered&lt;br /&gt;so far, like subroutines, functions, and events, are not new to most Web developers.&lt;br /&gt;HTML, in combination with client-side JavaScript, has been doing all&lt;br /&gt;that for years. ASP.NET is different to this model, though, because it is a serverside,&lt;br /&gt;not client-side, technology—events that occur on a page are handled by&lt;br /&gt;code running on the server. For this to work, ASP.NET uses the mechanism of&lt;br /&gt;postback.&lt;br /&gt;When an event is triggered, for instance, a button is clicked, or an item in a grid&lt;br /&gt;is selected, the page is submitted back to the server for processing, along with&lt;br /&gt;information about the event and any preexisting data on the page (via view state).&lt;br /&gt;We say the page “posts back” to the server. This is a powerful concept to grasp&lt;br /&gt;because it is postback that lets us run code on the server rather than on the client’s&lt;br /&gt;browser, and it is postback that lets our server code know which items within a&lt;br /&gt;drop-down list were selected, or what information a user typed into a text box.&lt;br /&gt;But what would happen if you had multiple DropDownList controls that were&lt;br /&gt;populated with database data? Users could interact with those DropDownList&lt;br /&gt;controls and, in turn, we could set certain options within the page based on what&lt;br /&gt;they selected from the drop-down menus. Although this seems like a common&lt;br /&gt;task, with traditional ASP it incurred considerable overhead. The problem is that&lt;br /&gt;while the data that’s bound to the drop-down menu from the database never&lt;br /&gt;changes, every time the user selects an item from the drop-down menu and a&lt;br /&gt;postback has to be done, the database must be accessed again to rebuild the&lt;br /&gt;contents of each drop-down list on the page. However, this is not a problem in&lt;br /&gt;ASP.NET.&lt;br /&gt;In ASP.NET we can check for postback with the IsPostBack property, and thus&lt;br /&gt;avoid performing any time consuming tasks unnecessarily. IsPostBack is a pagelevel&lt;br /&gt;property—meaning that it’s a property of the page itself—and we’d most&lt;br /&gt;commonly use it in the Page_Load() event handler to execute code only when&lt;br /&gt;the page is first loaded. Consider the following example:&lt;br /&gt;VB.NET File: PostBack.aspx&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;Order the print version of this book to get all 700+ pages! 112&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;&lt;script runat="server" language="VB"&gt;&lt;br /&gt;Sub Page_Load(s As Object, e As EventArgs)&lt;br /&gt;lblMessage1.Text = Now()&lt;br /&gt;If Not IsPostBack Then&lt;br /&gt;lblMessage2.Text = Now()&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;p&gt;Not Checking for postback:&lt;br /&gt;&lt;br /&gt;&lt;asp:label id="lblMessage1" runat="server"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Checking for postback:&lt;br /&gt;&lt;br /&gt;&lt;asp:label id="lblMessage2" runat="server"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;asp:button id="btnClick" text="Click Me" runat="server"&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;C# File: PostBack.aspx&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;script runat="server" language="C#"&gt;&lt;br /&gt;void Page_Load(Object s, EventArgs e) {&lt;br /&gt;lblMessage1.Text = Convert.ToString(DateTime.Now);&lt;br /&gt;if (!IsPostBack) {&lt;br /&gt;lblMessage2.Text = Convert.ToString(DateTime.Now);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;p&gt;Not Checking for postback:&lt;br /&gt;&lt;br /&gt;&lt;asp:label id="lblMessage1" runat="server"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Checking for postback:&lt;br /&gt;&lt;br /&gt;&lt;asp:label id="lblMessage2" runat="server"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;asp:button id="btnClick" text="Click Me" runat="server"&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;113 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Postback&lt;br /&gt;The result will look similar to Figure 4.6.&lt;br /&gt;Figure 4.6. The IsPostBack property checks to make sure the user&lt;br /&gt;isn’t resubmitting the page.&lt;br /&gt;In this example, the IsPostBack check means that the second label doesn’t refresh&lt;br /&gt;when the Button control is clicked. Similarly, we could use IsPostBack within&lt;br /&gt;the Page_Load() subroutine to set up database-driven drop-down menus just&lt;br /&gt;once within each user’s session, making the online experience smoother, and&lt;br /&gt;making our application more scalable. Don’t worry if postback seems a bit confusing&lt;br /&gt;now—we’ll use it more in upcoming chapters, so if it doesn’t yet, it should&lt;br /&gt;make sense after a few more practical examples.&lt;br /&gt;Formatting Controls with CSS&lt;br /&gt;HTML was deliberately designed to pay little attention to the specifics of how&lt;br /&gt;particular items on a page were rendered. It is left up to the individual browser&lt;br /&gt;to work out these intricacies, and tailor the output to the limitations and strengths&lt;br /&gt;of the user’s machine. While we can change font styles, sizes, colors, and so on&lt;br /&gt;using HTML tags, this is a practice that can lead to verbose code and pages that&lt;br /&gt;are very hard to restyle at a later date.&lt;br /&gt;The Cascading Style Sheets (CSS) language aims to provide the degree of&lt;br /&gt;control, flexibility, and pizzazz that modern Web designers seek. It’s a standard&lt;br /&gt;that’s widely supported by all the popular browsers, in its oldest version (CSS1)&lt;br /&gt;at the very least.&lt;br /&gt;CSS is a powerful tool for Web developers because it gives us the power to create&lt;br /&gt;one set of styles in a single sheet, and apply those styles to all the pages in our&lt;br /&gt;Order the print version of this book to get all 700+ pages! 114&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;Website. All the pages then use the same fonts, colors, and sizes for the same&lt;br /&gt;sections, giving the site a consistent feel throughout. Regardless of whether our&lt;br /&gt;site contains three pages or three hundred, when we alter the styles in the style&lt;br /&gt;sheet, those changes are immediately applied to all pages based on that style&lt;br /&gt;sheet.&lt;br /&gt;Types of Styles and Style Sheets&lt;br /&gt;There are three different ways of associating styles to elements of a particular&lt;br /&gt;Web page. I’ve already mentioned the first, and usually the best, which is an external&lt;br /&gt;file:&lt;br /&gt;External File By placing your style rules in an external style sheet,&lt;br /&gt;you can link this one file to any Web pages where you&lt;br /&gt;want those styles to be used. This makes updating a&lt;br /&gt;Website’s overall look a cakewalk.&lt;br /&gt;Document Wide Rather than having an external sheet, you can place&lt;br /&gt;style rules for a page within a &lt;style&gt; tag inside that&lt;br /&gt;page’s head element. The problem is that we can’t&lt;br /&gt;then use those styles in another page without typing&lt;br /&gt;them in again, which makes global changes to the entire&lt;br /&gt;site difficult to manage.&lt;br /&gt;Inline Inline styles allow us to set styles for a single tag using&lt;br /&gt;the style attribute. For instance, we might create a&lt;br /&gt;text box in regular HTML with a style attribute that&lt;br /&gt;draws a border around the text box like so:&lt;br /&gt;&lt;input type="text"&lt;br /&gt;style="border-style:groove" /&gt;&lt;br /&gt;CSS style rules create styles that are applied to elements of a page in one of two&lt;br /&gt;ways1:&lt;br /&gt;Classes Arguably the most popular way to use styles within&lt;br /&gt;your pages, classes allow you to set up a custom style&lt;br /&gt;that will be applied to any tag or control that has a&lt;br /&gt;1This is, to some extent, a simplified view of how CSS works. For the complete story, refer to HTML&lt;br /&gt;Utopia: Designing Without Tables Using CSS (SitePoint, ISBN 0-9579218-2-9).&lt;br /&gt;115 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Types of Styles and Style Sheets&lt;br /&gt;class attribute that matches the name of your custom&lt;br /&gt;style.&lt;br /&gt;Tag Redefinition Redefining a tag affects the appearance of certain&lt;br /&gt;standard HTML tags. For instance, the &lt;hr /&gt; tag is&lt;br /&gt;generally given a width of 100% by default, but you&lt;br /&gt;could redefine the tag in CSS to have a width of 50%.&lt;br /&gt;Whether you’re building external, document-wide, or inline style sheets, properties&lt;br /&gt;for classes and tag redefinitions use the same syntax. To create a class within an&lt;br /&gt;external style sheet file, you’d use the following syntax:&lt;br /&gt;.myClass {&lt;br /&gt;font-family: arial;&lt;br /&gt;font-size: 10pt;&lt;br /&gt;color: red;&lt;br /&gt;}&lt;br /&gt;This would then be saved in a file with a .css extension, such as styles.css,&lt;br /&gt;and linked into the Web Form with the following line in the &lt;head&gt; tag of your&lt;br /&gt;document:&lt;br /&gt;&lt;link href="styles.css" rel="stylesheet"&gt;&lt;br /&gt;Similarly, to define a class within a document-wide style sheet, you would use&lt;br /&gt;the following syntax:&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.myClass {&lt;br /&gt;font-family: arial;&lt;br /&gt;font-size: 10pt;&lt;br /&gt;color: red;&lt;br /&gt;}&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;When you’re using inline styles, use the following syntax:&lt;br /&gt;&lt;span style="font-family: arial; font-size: 10pt; color: red;"&gt;My&lt;br /&gt;Stylized Text&lt;/span&gt;&lt;br /&gt;For inline styles, simply add all properties to the tag in question with the style&lt;br /&gt;attribute. Above, we’ve used the &lt;span&gt; tag, but the principle remains the same&lt;br /&gt;for the other tags.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 116&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;Now that you have a basic understanding of some of the fundamental concepts&lt;br /&gt;behind CSS, let’s look at the different types of styles that can be used within our&lt;br /&gt;ASP.NET applications.&lt;br /&gt;Style Properties&lt;br /&gt;There are many different types of properties that you can modify using style&lt;br /&gt;sheets. Below is a list of the common types:&lt;br /&gt;Font This category provides you with the ability to format&lt;br /&gt;text level elements, including their font face, size, decoration,&lt;br /&gt;weight, color, etc.&lt;br /&gt;Background This category allows you to customize backgrounds for&lt;br /&gt;objects and text. Modifying these values gives you control&lt;br /&gt;over the color, image, and whether or not you want to&lt;br /&gt;repeat an image.&lt;br /&gt;Block This category allows you to modify the spacing between&lt;br /&gt;paragraphs, lines of text, and spaces between text and&lt;br /&gt;words.&lt;br /&gt;Box The box category provides changes and customizations&lt;br /&gt;for tables. If you need to modify borders, padding, spacing,&lt;br /&gt;and colors on a table, row, or cell, you can modify&lt;br /&gt;elements within this category.&lt;br /&gt;Border This category lets you draw boxes of different colors,&lt;br /&gt;styles and thicknesses around page elements.&lt;br /&gt;List This category allows you to customize the way ordered&lt;br /&gt;and unordered lists are created.&lt;br /&gt;Positioning Modifying positioning allows you to move and position&lt;br /&gt;tags and controls freely.&lt;br /&gt;These categories provide a list of what can generally be modified using CSS. As&lt;br /&gt;we progress through the book, the many types of properties will become evident.&lt;br /&gt;117 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Style Properties&lt;br /&gt;The CssClass Property&lt;br /&gt;Once you have defined a class in a style sheet (be it external or internal), you’ll&lt;br /&gt;want to begin associating that class with elements in your Web Forms. You can&lt;br /&gt;associate classes with ASP.NET Web controls using the CssClass property. The&lt;br /&gt;following example uses classes defined within a document-wide style sheet:&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.dropdownmenu {&lt;br /&gt;font-family: Arial;&lt;br /&gt;background-color: #0099FF;&lt;br /&gt;}&lt;br /&gt;.textbox {&lt;br /&gt;font-family: Arial;&lt;br /&gt;background-color: #0099FF;&lt;br /&gt;border: 1px solid;&lt;br /&gt;}&lt;br /&gt;.button {&lt;br /&gt;font-family: Arial;&lt;br /&gt;background-color: #0099FF;&lt;br /&gt;border: 1px solid;&lt;br /&gt;}&lt;br /&gt;.text {&lt;br /&gt;font-family: Arial, Helvetica, sans-serif;&lt;br /&gt;font-size: 10px;&lt;br /&gt;}&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;p class="text"&gt;Please select a product:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;asp:DropDownList id="ddlProducts" CssClass="dropdownmenu"&lt;br /&gt;runat="server"&gt;&lt;br /&gt;&lt;asp:listitem text="Shirt" selected="true"&gt;&lt;br /&gt;&lt;asp:listitem text="Hat"&gt;&lt;br /&gt;&lt;asp:listitem text="Pants"&gt;&lt;br /&gt;&lt;asp:listitem text="Socks"&gt;&lt;br /&gt;&lt;/asp:DropDownList&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;asp:TextBox id="txtQuantity" CssClass="textbox" runat="server"&lt;br /&gt;/&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;asp:Button id="btnAddToCart" CssClass="button" runat="server"&lt;br /&gt;Text="Add To Cart" /&gt;&lt;/p&gt;&lt;br /&gt;Order the print version of this book to get all 700+ pages! 118&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;A Navigation Menu and Web Form for&lt;br /&gt;the Intranet Application&lt;br /&gt;Now that you have a solid foundation in HTML controls, Web Forms, Web&lt;br /&gt;controls, Page Interaction, Navigation, and Style Sheets, you’re ready to begin&lt;br /&gt;working on the project that we’ll build on throughout the remainder of this book.&lt;br /&gt;With the Dorknozzle Intranet Application, I hope to introduce you to real&lt;br /&gt;world development in simple stages, as we work through the following chapters&lt;br /&gt;together.&lt;br /&gt;Introducing the Dorknozzle Intranet Application&lt;br /&gt;While most books give you a series of simple, isolated examples to illustrate&lt;br /&gt;particular techniques, this book is a little different. Many of the examples provided&lt;br /&gt;in these pages will involve work on a single project—an intranet application for&lt;br /&gt;the fictional Dorknozzle company. We’ll build on this application as we go along,&lt;br /&gt;illustrating the many different concepts that are important to developers of any&lt;br /&gt;type of Web application. The intranet application we’ll develop will offer the&lt;br /&gt;following functionality:&lt;br /&gt;Welcome Displays company event information to the user of&lt;br /&gt;the Web application.&lt;br /&gt;Helpdesk Allows any Dorknozzle employees to submit a problem&lt;br /&gt;as a helpdesk ticket to an IT administrator regarding&lt;br /&gt;issues they experience with software, hardware, or their&lt;br /&gt;computer.&lt;br /&gt;Employee Store Employee stores boost company morale. By building&lt;br /&gt;an online store, we’ll allow Dorknozzle employees to&lt;br /&gt;buy life-enriching items such as mugs, shirts, and&lt;br /&gt;mouse pads. All will proudly bear the Dorknozzle logo,&lt;br /&gt;of course!&lt;br /&gt;Newsletter Archive Another way to improve morale is to keep employees&lt;br /&gt;informed of company events and news. Each month,&lt;br /&gt;119 Order the print version of this book to get all 700+ pages!&lt;br /&gt;A Navigation Menu and Web Form for the Intranet Application&lt;br /&gt;the Dorknozzle HR Manager will send out a company&lt;br /&gt;newsletter to all employees.&lt;br /&gt;Employee Directory Employees will likely want to call each other to discuss&lt;br /&gt;important, company-related affairs… such as last&lt;br /&gt;night’s television viewing! The employee directory&lt;br /&gt;should let employees find other staff members’ details.&lt;br /&gt;Address Book While the employee directory houses handy information&lt;br /&gt;for use by staff, the purpose of the address book&lt;br /&gt;is to provide more detailed information about all of&lt;br /&gt;the employees within the company&lt;br /&gt;Admin Tools Administrators will need a way to modify closed&lt;br /&gt;helpdesk tickets, delete the records of fired employees,&lt;br /&gt;create newly hired employees’ profiles, modify information&lt;br /&gt;on current employees, and more. The admin&lt;br /&gt;tools section will provide the interface for this.&lt;br /&gt;Before we can begin creating all these smaller applications, we must build the&lt;br /&gt;framework that will act as a template across the site. In this section, we’ll accomplish&lt;br /&gt;the following introductory tasks for the development of our intranet application:&lt;br /&gt; Build the navigation menu.&lt;br /&gt; Create the style sheet.&lt;br /&gt; Design the template and Web Form for the helpdesk application.&lt;br /&gt;Building the Navigation Menu&lt;br /&gt;Once it’s complete, our fictitious intranet application will have modules for an&lt;br /&gt;IT helpdesk, employee store, newsletter archive, employee directory, address&lt;br /&gt;book, and admin console. Obviously, we’re going to need some kind of navigation&lt;br /&gt;menu to make those sub-applications simple to find. Throughout this chapter,&lt;br /&gt;we’ve studied numerous ways of navigating from page to page, and we could use&lt;br /&gt;any of these methods here. We’ve discussed controls such as the Button control,&lt;br /&gt;HyperLink control, and LinkButton control, and we’ve explored various objects&lt;br /&gt;and methods for navigating from code. Although all these would work to a certain&lt;br /&gt;degree, in this case, only one makes the most sense in terms of performance and&lt;br /&gt;practicality.&lt;br /&gt;Order the print version of this book to get all 700+ pages! 120&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;Before we begin, you’ll want to obtain the necessary files from the code archive&lt;br /&gt;for this book. The files for this chapter include a starting template that you can&lt;br /&gt;use for this project, as well as the complete version in case you run into problems.&lt;br /&gt;Because we’re not submitting any data for processing, we can eliminate the Button&lt;br /&gt;and LinkButton controls; each involves extra work from the server in order to&lt;br /&gt;process the Click event it raises. As we only want to link from one page to the&lt;br /&gt;next, and don’t care about performing any tasks programmatically, we can use&lt;br /&gt;the simpler HyperLink control instead. Remember, we add a HyperLink control&lt;br /&gt;to the page by inserting the following code inside the form:&lt;br /&gt;&lt;asp:HyperLink NavigateUrl="index.aspx" runat="server"&lt;br /&gt;Text="Home" /&gt;&lt;br /&gt;This would add a link that showed the text “Home.”&lt;br /&gt;Open up your text editor and create a new file with the standard HTML tags&lt;br /&gt;required by ASP.NET pages, including an empty form with a runat="server"&lt;br /&gt;attribute. Inside this form, add the HyperLink controls for helpdesk, employee&lt;br /&gt;store, newsletter archive, employee directory, address book, and admin tools, like&lt;br /&gt;so:&lt;br /&gt;File: index.aspx (excerpt)&lt;br /&gt;&lt;!-- HyperLink controls for navigation --&gt;&lt;br /&gt;&lt;img src="Images/book_closed.gif" width="16" height="16" alt="+"&lt;br /&gt;/ /&gt;&lt;br /&gt;&lt;asp:HyperLink NavigateUrl="index.aspx" runat="server" Text="Home"&lt;br /&gt;/&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="Images/book_closed.gif" width="16" height="16" alt="+"&lt;br /&gt;/ /&gt;&lt;br /&gt;&lt;asp:HyperLink NavigateUrl="helpdesk.aspx" runat="server"&lt;br /&gt;Text="HelpDesk" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="Images/book_closed.gif" width="16" height="16" alt="+"&lt;br /&gt;/ /&gt;&lt;br /&gt;&lt;asp:HyperLink NavigateUrl="employeestore.aspx" runat="server"&lt;br /&gt;Text="Employee Store" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="Images/book_closed.gif" width="16" height="16" alt="+"&lt;br /&gt;/ /&gt;&lt;br /&gt;&lt;asp:HyperLink NavigateUrl="newsletterarchive.aspx" runat="server"&lt;br /&gt;Text="Newsletter Archive" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="Images/book_closed.gif" width="16" height="16" alt="+"&lt;br /&gt;121 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Building the Navigation Menu&lt;br /&gt;/ /&gt;&lt;br /&gt;&lt;asp:HyperLink NavigateUrl="employeedirectory.aspx" runat="server"&lt;br /&gt;Text="Employee Directory" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="Images/book_closed.gif" width="16" height="16" alt="+"&lt;br /&gt;/ /&gt;&lt;br /&gt;&lt;asp:HyperLink NavigateUrl="addressbook.aspx" runat="server"&lt;br /&gt;Text="Address Book" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="Images/book_closed.gif" width="16" height="16" alt="+"&lt;br /&gt;/ /&gt;&lt;br /&gt;&lt;asp:HyperLink NavigateUrl="admintools.aspx" runat="server"&lt;br /&gt;Text="Admin Tools" /&gt;&lt;br /&gt;&lt;!-- End HyperLink controls --&gt;&lt;br /&gt;Once the links have been added to the page and you’ve placed the&lt;br /&gt;book_closed.gif file in a subdirectory called Images, you could save your work&lt;br /&gt;(as index.aspx) and view the results in your browser. At this stage, however, it&lt;br /&gt;would look fairly bland. What we need is a few pretty graphics to provide visual&lt;br /&gt;appeal! Although modern Web design practices would have us use CSS for our&lt;br /&gt;page layout and visual design, we’ll resort to HTML tables here in order to stay&lt;br /&gt;focused on the server-side aspects of our application.&lt;br /&gt;Open index.aspx and create the following two regular (i.e. not server-side)&lt;br /&gt;HTML tables at the very start of the page body:&lt;br /&gt;File: index.aspx (excerpt)&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;form runat="server"&gt;&lt;br /&gt;&lt;table width="100%" border="0" cellspacing="0" cellpadding="0"&lt;br /&gt;background="Images/header_bg.gif"&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;img src="Images/header_top.gif" width="450" height="142"&lt;br /&gt;alt="the official dorknozzle company intranet"&lt;br /&gt;/ /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;table width="100%" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td width="157"&gt;&lt;img src="Images/header_bottom.gif"&lt;br /&gt;width="157" height="37" alt="" / /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;/td&gt;&lt;br /&gt;Order the print version of this book to get all 700+ pages! 122&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;We’ll want to place our links in a table too. While we’re there, we’ll add some&lt;br /&gt;news items to the main index page. Open up index.aspx once more, and place&lt;br /&gt;the following HTML table around the links we’ve already added:&lt;br /&gt;File: index.aspx (excerpt)&lt;br /&gt;&lt;table width="100%" border="0" cellspacing="0" cellpadding="10"&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="160"&gt;&lt;br /&gt;&lt;!-- HyperLink controls for navigation --&gt;&lt;br /&gt;…&lt;br /&gt;&lt;!-- End HyperLink controls --&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td valign="top"&gt;&lt;br /&gt;&lt;h1&gt;Company News:&lt;/h1&gt;&lt;br /&gt;&lt;p&gt;We'll add some news later.&lt;/p&gt;&lt;br /&gt;&lt;h1&gt;Company Events:&lt;/h1&gt;&lt;br /&gt;&lt;p&gt;We'll add company events later.&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;The result will look similar to Figure 4.7.&lt;br /&gt;123 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Building the Navigation Menu&lt;br /&gt;Figure 4.7. Add HyperLink controls for the Intranet navigation&lt;br /&gt;menu.&lt;br /&gt;Isn’t it amazing the difference some well-chosen graphics can make? Don’t forget&lt;br /&gt;to place the pictures from the download in the Images subdirectory. You can, of&lt;br /&gt;course, find the completed source in the code archive, although I do recommend&lt;br /&gt;you type the code in yourself as we progress, for practice value.&lt;br /&gt;Create the Corporate Style Sheet&lt;br /&gt;If you don’t mind the ordinary look of standard Web pages, then you can skip&lt;br /&gt;this section. If, however, you don’t like standard blue hyperlinks, black, Times&lt;br /&gt;New Roman text, and beveled form controls, this section is for you.&lt;br /&gt;As you’ve already read, style sheets provide developers with flexibility and control&lt;br /&gt;over the "look" of Web applications. In this section, we’ll explore the addition of&lt;br /&gt;a customizable style sheet to our fictitious intranet application. We will define&lt;br /&gt;styles for the following elements within our application:&lt;br /&gt; Hyperlinks&lt;br /&gt; Text (including body text and headings)&lt;br /&gt; Boxed controls (including text boxes and drop-down menus)&lt;br /&gt;Order the print version of this book to get all 700+ pages! 124&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;You can start by creating the CSS file that the styles will reside in. I’ve opened&lt;br /&gt;Notepad and immediately saved the file as styles.css within the root directory&lt;br /&gt;of the application, as shown in Figure 4.8.&lt;br /&gt;Figure 4.8. Open Notepad and save the file as styles.css within&lt;br /&gt;the root directory of the application folder.&lt;br /&gt;Now, let’s apply some style properties to the following tags:&lt;br /&gt; body&lt;br /&gt; p&lt;br /&gt; h1&lt;br /&gt; a:link&lt;br /&gt; a:hover&lt;br /&gt;125 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Create the Corporate Style Sheet&lt;br /&gt;You’ll notice the a:link and a:hover items in this list, which are not strictlyspeaking&lt;br /&gt;tags. In the world of CSS, these are known as a pseudo-elements.&lt;br /&gt;a:link narrows the selection to &lt;a&gt; tags that are links (as opposed to &lt;a&lt;br /&gt;name="…"&gt; tags, which are targets). Assigning properties to a:hover will apply&lt;br /&gt;those properties only to links over which the user is hovering the mouse.&lt;br /&gt;We’ll also define a few classes for certain Web controls that don’t map directly&lt;br /&gt;to a particular HTML tag:&lt;br /&gt;.textbox For &lt;asp:textbox&gt; controls, which become &lt;input&lt;br /&gt;type="text"&gt; and &lt;textarea&gt; tags when sent to the&lt;br /&gt;browser.&lt;br /&gt;.button For &lt;asp:button&gt; controls, which become &lt;input&lt;br /&gt;type="button"&gt;, &lt;input type="submit"&gt;, and&lt;br /&gt;&lt;input type="reset"&gt; tags.&lt;br /&gt;.dropdownmenu For &lt;asp:dropdownlist&gt; controls, which become&lt;br /&gt;&lt;select&gt; tags.&lt;br /&gt;Below is the code for the CSS rules that will apply the desired basic formatting&lt;br /&gt;to our site. Type the following just as it appears into your styles.css file:&lt;br /&gt;body {&lt;br /&gt;background: #FFFFFF;&lt;br /&gt;color: #000000;&lt;br /&gt;margin: 0;&lt;br /&gt;padding: 0;&lt;br /&gt;}&lt;br /&gt;p {&lt;br /&gt;font-family: Arial;&lt;br /&gt;font-size: 12px;&lt;br /&gt;}&lt;br /&gt;h1 {&lt;br /&gt;font-family: Arial;&lt;br /&gt;font-size: 14px;&lt;br /&gt;color: #000000;&lt;br /&gt;}&lt;br /&gt;a:link {&lt;br /&gt;font-family: Arial;&lt;br /&gt;font-size: 12px;&lt;br /&gt;color: #000000;&lt;br /&gt;}&lt;br /&gt;a:hover {&lt;br /&gt;font-family: Arial;&lt;br /&gt;Order the print version of this book to get all 700+ pages! 126&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;font-size: 12px;&lt;br /&gt;color: #FF0000;&lt;br /&gt;}&lt;br /&gt;.textbox {&lt;br /&gt;font-family: Arial;&lt;br /&gt;font-size: 12px;&lt;br /&gt;border: 1px solid black;&lt;br /&gt;}&lt;br /&gt;.button {&lt;br /&gt;font-family: Arial;&lt;br /&gt;border: 1px solid black;&lt;br /&gt;background-color: #CCCCCC;&lt;br /&gt;}&lt;br /&gt;.dropdownmenu {&lt;br /&gt;font-family: Arial;&lt;br /&gt;font-size: 12px;&lt;br /&gt;background-color: #CCCCCC;&lt;br /&gt;}&lt;br /&gt;Now that the style sheet file has been created, we can link the style sheet file to&lt;br /&gt;index.aspx by inserting the following line into the &lt;head&gt; tag of the document:&lt;br /&gt;&lt;link href="styles.css" rel="stylesheet"&gt;&lt;br /&gt;We’ll need to assign the CSS classes we have defined (textbox, button, and&lt;br /&gt;dropdownmenu) to relevant controls as we create them, but for now our simple&lt;br /&gt;HTML template will automatically benefit from the tags we have redefined.&lt;br /&gt;Remember, we’re not limited to these styles. If, throughout the development of&lt;br /&gt;our application, we decide to add more styles, we’ll simply need to open the&lt;br /&gt;styles.css file and add them as necessary.&lt;br /&gt;You can save your work at this point, and view it in the browser.&lt;br /&gt;Design the Web Form for the Helpdesk&lt;br /&gt;Application&lt;br /&gt;The last part of the project is to add the employee Helpdesk request Web Form.&lt;br /&gt;This will be a Web page that allows our fictitious employees to report hardware,&lt;br /&gt;software, and workstation problems. The Web Form will be arranged as a series&lt;br /&gt;of simple steps that users can follow to report their problems:&lt;br /&gt;127 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Design the Web Form for the Helpdesk Application&lt;br /&gt; Pick from a predefined category of potential problem areas. (DropDownList&lt;br /&gt;control)&lt;br /&gt; Pick from predefined subjects within the categories. (DropDownList control)&lt;br /&gt; Type a description of the problem. (Multiline TextBox control)&lt;br /&gt; Submit the request. (Button control)&lt;br /&gt;Rather than creating a new, blank page and retyping all the code, you can simply&lt;br /&gt;copy index.aspx and rename it helpdesk.aspx (or save a copy with the new&lt;br /&gt;name if it’s already open in your editor). The only portion of the code that will&lt;br /&gt;change to accommodate the HelpDesk interface is the last table in the body—the&lt;br /&gt;one that contains the news items on index.aspx. Everything else stays the same,&lt;br /&gt;because we want to have a single look for all our pages2. Change the final column&lt;br /&gt;in the table to create two drop-down lists, a multiline text box, and a button, as&lt;br /&gt;shown:&lt;br /&gt;&lt;!-- End HyperLink controls --&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td valign="top"&gt;&lt;br /&gt;&lt;h1&gt;Employee HelpDesk Request&lt;/h1&gt;&lt;br /&gt;&lt;p&gt;Problem Category:&lt;br /&gt;&lt;br /&gt;&lt;asp:DropDownList id="ddlCategory" CssClass="dropdownmenu"&lt;br /&gt;runat="server" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Problem Subject:&lt;br /&gt;&lt;br /&gt;&lt;asp:DropDownList id="ddlSubject" CssClass="dropdownmenu"&lt;br /&gt;runat="server" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Problem Description:&lt;br /&gt;&lt;br /&gt;&lt;asp:TextBox id="txtDescription" CssClass="textbox"&lt;br /&gt;Columns="40" Rows="4" TextMode="MultiLine"&lt;br /&gt;runat="server" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;asp:Button id="btnSubmit" CssClass="button"&lt;br /&gt;Text="Submit Request" runat="server" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;Notice how we’ve applied our CSS classes to the appropriate controls here.&lt;br /&gt;Don’t worry that the DropDownList controls don’t have items associated with&lt;br /&gt;them—the categories and subjects will be predefined within database tables.&lt;br /&gt;Later, we’ll bind these database tables to their respective controls.&lt;br /&gt;When you’re finished, save your work and view it in a browser.&lt;br /&gt;2We’ll see better ways to do this in later chapters…&lt;br /&gt;Order the print version of this book to get all 700+ pages! 128&lt;br /&gt;Chapter 4: Web Forms and Web Controls&lt;br /&gt;Summary&lt;br /&gt;In this chapter, we discussed HTML controls, Web Forms, and Web controls.&lt;br /&gt;We also explored how to link between pages, and how to add style to controls.&lt;br /&gt;You even built your first project, putting together the information you’ve learned&lt;br /&gt;in this and previous chapters.&lt;br /&gt;Your Web application efforts will focus predominantly on Web controls. In the&lt;br /&gt;next chapter, we’ll learn how to check user input on those Web controls through&lt;br /&gt;the use of the ASP.NET validation controls.&lt;br /&gt;129 Order the print version of this book to get all 700+ pages!&lt;br /&gt;Summary&lt;br /&gt;130&lt;br /&gt;Index&lt;br /&gt;Symbols&lt;br /&gt;&amp;= operator, 567&lt;br /&gt;', comments in VB.NET, 35&lt;br /&gt;+= operator, 567&lt;br /&gt;//, comments in C#, 35&lt;br /&gt;== operator, 64&lt;br /&gt;@ symbol, denoting parameters, 257&lt;br /&gt;A&lt;br /&gt;&lt;a&gt; tag and the HtmlAnchor control,&lt;br /&gt;87&lt;br /&gt;a:hover and a:link pseudo-elements,&lt;br /&gt;126&lt;br /&gt;ABS function, SQL, 235&lt;br /&gt;Access databases&lt;br /&gt;character matching, 226&lt;br /&gt;creating relationships, 189&lt;br /&gt;creating tables, 170&lt;br /&gt;creating the Dorknozzle database,&lt;br /&gt;165&lt;br /&gt;data modelling, MSDE and, 18&lt;br /&gt;data types, 170&lt;br /&gt;database diagrams, 186, 191&lt;br /&gt;Datasheet View, 178, 207&lt;br /&gt;defining primary keys, 184&lt;br /&gt;Design View, 170, 178, 199&lt;br /&gt;Expression Builder, 229&lt;br /&gt;INSERT statements, 215&lt;br /&gt;installing Access, 18&lt;br /&gt;listing supported functions, 229&lt;br /&gt;namespaces for ADO.NET use, 244&lt;br /&gt;Query Editor, 199&lt;br /&gt;security, 195&lt;br /&gt;SQL View feature, 202&lt;br /&gt;suitability for ASP.NET, 6&lt;br /&gt;UPDATE statements, 218&lt;br /&gt;views for editing tables, 178&lt;br /&gt;account profile page, PayPal, 496&lt;br /&gt;&lt;ad&gt; tag, AdRotator control, 610&lt;br /&gt;add to cart functionality, 470&lt;br /&gt;Add Watch option, 530&lt;br /&gt;Add() method&lt;br /&gt;Command object, 257&lt;br /&gt;DataSet Tables collection, 382&lt;br /&gt;DataTable Column collection, 386&lt;br /&gt;DataTable Rows collection, 390&lt;br /&gt;address book page, Dorknozzle database,&lt;br /&gt;368&lt;br /&gt;ADO.NET, 243–304&lt;br /&gt;common database queries, 253&lt;br /&gt;main classes introduced, 244&lt;br /&gt;new classes, 364&lt;br /&gt;transactions, 295&lt;br /&gt;AdRotator control, 609, 701&lt;br /&gt;&lt;advertisement&gt; tag, AdRotator control,&lt;br /&gt;610&lt;br /&gt;aggregate functions, SQL, 229&lt;br /&gt;DataTable.Compute() and, 399&lt;br /&gt;aliases as virtual directories, 14&lt;br /&gt;&lt;allow&gt; element, Web.config file, 539&lt;br /&gt;AllowPaging property, DataGrid control,&lt;br /&gt;377–378&lt;br /&gt;AllowSorting property, DataGrid control,&lt;br /&gt;412&lt;br /&gt;&lt;alternatingitemstyle&gt; tag&lt;br /&gt;DataGrid control, 314&lt;br /&gt;DataList control, 345&lt;br /&gt;&lt;alternatingitemtemplate&gt; tag, 262&lt;br /&gt;anonymous users, 534, 539&lt;br /&gt;Append() method, StringBuilder class,&lt;br /&gt;673&lt;br /&gt;AppendText() method, File class, 564&lt;br /&gt;application domains, advantages, 422&lt;br /&gt;Application logs and error handling,&lt;br /&gt;516&lt;br /&gt;application state, 423&lt;br /&gt;application variables, 424–425&lt;br /&gt;Application_Start() method, 428, 430&lt;br /&gt;applications (see Web applications)&lt;br /&gt;&lt;apply-templates&gt; tag, XSLT, 602&lt;br /&gt;appointment scheduler, 616–625&lt;br /&gt;delete functionality, 623&lt;br /&gt;methods, 617&lt;br /&gt;&lt;appsettings&gt; tag, 434&lt;br /&gt;arithmetic functions, SQL, 233&lt;br /&gt;ArrayList class&lt;br /&gt;deserialization example, 594&lt;br /&gt;serialization example, 590, 593&lt;br /&gt;arrays, 57&lt;br /&gt;declaring, 58&lt;br /&gt;multidimensional, 618&lt;br /&gt;PrimaryKey property, DataTable,&lt;br /&gt;391&lt;br /&gt;ASP (Active Server Pages), 2, 4, 40&lt;br /&gt;ASP.NET&lt;br /&gt;(see also example ASP.NET pages)&lt;br /&gt;advantages for building Web applications,&lt;br /&gt;4&lt;br /&gt;checking for correct installation, 10&lt;br /&gt;manual installation, 12&lt;br /&gt;page mechanisms, 31&lt;br /&gt;page structure, 32&lt;br /&gt;software requirements, 5&lt;br /&gt;support sites, 29&lt;br /&gt;&lt;asp: (see following term)&lt;br /&gt;asp: prefix&lt;br /&gt;validation controls, 135&lt;br /&gt;Web controls, 99&lt;br /&gt;aspnet_wp.exe file, 523&lt;br /&gt;.aspx ISAPI DLL, 10&lt;br /&gt;assemblies, 658–660&lt;br /&gt;compiled proxy classes as, 679&lt;br /&gt;compiling proxy classes into, 660,&lt;br /&gt;665&lt;br /&gt;introduced, 423&lt;br /&gt;attributes, XML tags, 599&lt;br /&gt;Authenticate() method, FormsAuthentication&lt;br /&gt;class, 541, 546&lt;br /&gt;authentication&lt;br /&gt;methods, 532&lt;br /&gt;MSDE security, 196&lt;br /&gt;using localhost, 13&lt;br /&gt;Web Data Administrator and, 22&lt;br /&gt;authentication tickets (see cookies)&lt;br /&gt;authorization, forms authorization, 538&lt;br /&gt;auto incrementing columns, 183&lt;br /&gt;Access, 170&lt;br /&gt;DataColumn element, 397&lt;br /&gt;DataTable object, 470&lt;br /&gt;MSDE, 173&lt;br /&gt;AutoGenerateColumns property&lt;br /&gt;DataGrid control, 311&lt;br /&gt;AVG function, SQL, 232&lt;br /&gt;B&lt;br /&gt;Background property category, 117&lt;br /&gt;backslash character in C#, 248, 563&lt;br /&gt;banner advertisements, 609&lt;br /&gt;base classes, 79&lt;br /&gt;BETWEEN keyword, 214&lt;br /&gt;bin directories, 423&lt;br /&gt;BinaryFormatter class, 589&lt;br /&gt;Deserialize() method, 594&lt;br /&gt;serialization example, 593&lt;br /&gt;Serialize() method, 591, 621&lt;br /&gt;BindData() method, 293, 341&lt;br /&gt;checking query strings using, 320&lt;br /&gt;Block property category, 117&lt;br /&gt;&lt;body&gt; tags and presentational elements,&lt;br /&gt;32&lt;br /&gt;BodyFormat property, MailMessage&lt;br /&gt;class, 586&lt;br /&gt;Boolean variables, 475&lt;br /&gt;Border property category, 117&lt;br /&gt;BoundColumn control&lt;br /&gt;DataGrid control, 312, 317&lt;br /&gt;Box property category, 117&lt;br /&gt;Order the print version of this book to get all 700+ pages! 722&lt;br /&gt;Index&lt;br /&gt;breakpoints, 525&lt;br /&gt;bridge analogy, ADO.NET, 243, 364&lt;br /&gt;browsers&lt;br /&gt;ASP.NET display in, 28&lt;br /&gt;detecting validation support, 133–&lt;br /&gt;134&lt;br /&gt;display of Web Services, 655&lt;br /&gt;view of pages being debugged, 526&lt;br /&gt;view of WSDL, 663&lt;br /&gt;views of XML documents, 600&lt;br /&gt;built-in classes, .NET, 27&lt;br /&gt;built-in tags, 25&lt;br /&gt;Button control, 102, 701&lt;br /&gt;admintools.aspx page, 281, 286, 290&lt;br /&gt;attributes listed, 49&lt;br /&gt;class for, Dorknozzle project, 126&lt;br /&gt;setting user control properties dynamically,&lt;br /&gt;633&lt;br /&gt;shopping cart application, 457, 461–&lt;br /&gt;462&lt;br /&gt;&lt;button&gt; tags and the HtmlButton&lt;br /&gt;control, 88&lt;br /&gt;ButtonColumn control&lt;br /&gt;DataGrid control, 317, 336, 484&lt;br /&gt;ButtonColumn control, DataGrid control,&lt;br /&gt;317, 336, 484&lt;br /&gt;buttons&lt;br /&gt;custom images as, 91&lt;br /&gt;DataGrid columns acting as, 317&lt;br /&gt;C&lt;br /&gt;C# language&lt;br /&gt;data types, 56&lt;br /&gt;FirstPage.aspx example in, 25&lt;br /&gt;operators, 64&lt;br /&gt;Cache collection, 444&lt;br /&gt;caching&lt;br /&gt;arrays, appointment scheduler, 617&lt;br /&gt;Web applications, 437&lt;br /&gt;calculations&lt;br /&gt;DataColumn values, 398&lt;br /&gt;shopping cart quantity recalculations,&lt;br /&gt;474&lt;br /&gt;Calculator example Web Service, 653&lt;br /&gt;Calendar control, 611, 702&lt;br /&gt;interactive appointment scheduler,&lt;br /&gt;616&lt;br /&gt;Calendar_RenderDay() method&lt;br /&gt;appointment scheduler, 622&lt;br /&gt;Camel casing, Web controls, 99&lt;br /&gt;cancel functionality, DataGrid edits,&lt;br /&gt;328, 480&lt;br /&gt;Cascading Style Sheets (see CSS)&lt;br /&gt;cascading updates and deletes, 189, 193&lt;br /&gt;case sensitivity, XML, 498&lt;br /&gt;CaseSensitive property, DataTable object,&lt;br /&gt;391&lt;br /&gt;casting, 56&lt;br /&gt;generic controls to TextBoxes, 331&lt;br /&gt;catching errors (see Try...Catch blocks)&lt;br /&gt;CellPadding attribute, DataGrid control,&lt;br /&gt;315&lt;br /&gt;cells, as basis of DataLists, 339&lt;br /&gt;character encoding, Server.UrlEncode()&lt;br /&gt;method, 110&lt;br /&gt;character matching, 226&lt;br /&gt;CheckBox control, 104, 704&lt;br /&gt;selecting alternative style sheets,&lt;br /&gt;606–607&lt;br /&gt;checkboxes, HtmlInputCheckbox control,&lt;br /&gt;90&lt;br /&gt;CheckBoxList control, 105, 704&lt;br /&gt;checkout operations, shopping cart application,&lt;br /&gt;486&lt;br /&gt;CheckOut() method, 489&lt;br /&gt;classes&lt;br /&gt;creating a Web Service, 654&lt;br /&gt;definitions in code-behind files, 81&lt;br /&gt;OO programming concept, 76&lt;br /&gt;classes, .NET&lt;br /&gt;built-in classes, 27&lt;br /&gt;organization into namespaces, 70&lt;br /&gt;723 Order the print version of this book to get all 700+ pages!&lt;br /&gt;classes, ADO.NET, 244&lt;br /&gt;DataSet elements, 367&lt;br /&gt;classes, CSS&lt;br /&gt;applying style rules using, 115&lt;br /&gt;applying to Web forms , 128&lt;br /&gt;client-side validation, 133&lt;br /&gt;ClientTarget attribute, Page directive,&lt;br /&gt;134&lt;br /&gt;ClientValidationFunction property,&lt;br /&gt;CustomValidator, 159&lt;br /&gt;Close() method&lt;br /&gt;Connection object, 250&lt;br /&gt;FileStream object, 592&lt;br /&gt;StreamReader class, 567&lt;br /&gt;code&lt;br /&gt;breaking lines of, 65&lt;br /&gt;compilation errors and, 500&lt;br /&gt;isolation, in application domains,&lt;br /&gt;422&lt;br /&gt;runtime errors and, 501&lt;br /&gt;stepping through when debugging,&lt;br /&gt;525, 527&lt;br /&gt;code declaration blocks, 34&lt;br /&gt;connection strings, 247&lt;br /&gt;example, 26&lt;br /&gt;code render blocks, 36&lt;br /&gt;binding tables to DataLists, 461&lt;br /&gt;code-behind alternative, 79&lt;br /&gt;contructing URLs dynamically, 457&lt;br /&gt;templates and, for DataLists, 339&lt;br /&gt;code reuse with stored procedures, 194&lt;br /&gt;code-behind files, 34, 79–84&lt;br /&gt;collections, 257&lt;br /&gt;CollectName() method, user controls,&lt;br /&gt;635&lt;br /&gt;Color class, FromName() method, 623&lt;br /&gt;columns&lt;br /&gt;adding to database tables, 171&lt;br /&gt;DataGrid, sorting data, 410&lt;br /&gt;selective presentation with DataGrids,&lt;br /&gt;311&lt;br /&gt;Command objects, ADO.NET, 248&lt;br /&gt;CommandName property, Button control,&lt;br /&gt;462&lt;br /&gt;CommandType class, 302&lt;br /&gt;comments&lt;br /&gt;in VB.NET and C# code, 35&lt;br /&gt;server-side, 38&lt;br /&gt;committing transactions, 297&lt;br /&gt;Company Events Web Service&lt;br /&gt;consuming the service, 679&lt;br /&gt;CompanyEvents table, Dorknozzle&lt;br /&gt;database, 179, 678&lt;br /&gt;creating, 176&lt;br /&gt;Web Service access, 676&lt;br /&gt;CompareValidator control, 139, 716&lt;br /&gt;compilation errors, 500&lt;br /&gt;compiled technologies, 4, 658&lt;br /&gt;Compute() method&lt;br /&gt;DataTable class, 399&lt;br /&gt;conditional logic, 65&lt;br /&gt;configuration errors, 498&lt;br /&gt;configuration sections, 435&lt;br /&gt;configuration settings (see Web.config&lt;br /&gt;file)&lt;br /&gt;&lt;configuration&gt; tag, 434&lt;br /&gt;connection strings, 247&lt;br /&gt;storing in Web.config, 434&lt;br /&gt;ContinueShopping() method, 484&lt;br /&gt;controls&lt;br /&gt;(see alsodata controls; HTML controls;&lt;br /&gt;rich controls; validation&lt;br /&gt;controls; Web controls; user&lt;br /&gt;controls)&lt;br /&gt;binding DataSets to, 368&lt;br /&gt;declaring, code-behind files, 83&lt;br /&gt;parser errors and, 499&lt;br /&gt;selective loading, 636&lt;br /&gt;controls collection&lt;br /&gt;data controls, 329–330&lt;br /&gt;controls collection, data controls, 329–&lt;br /&gt;330&lt;br /&gt;Order the print version of this book to get all 700+ pages! 724&lt;br /&gt;Index&lt;br /&gt;ControlToCompare property, CompareValidator&lt;br /&gt;control, 141&lt;br /&gt;ControlToValidate property&lt;br /&gt;RequiredFieldValidator control, 135–&lt;br /&gt;137&lt;br /&gt;ControlToValidate property, Required-&lt;br /&gt;FieldValidator control, 135–137&lt;br /&gt;ControlValidate property, RangeValidator&lt;br /&gt;control, 147&lt;br /&gt;cookies&lt;br /&gt;basis of forms authentication, 532&lt;br /&gt;custom authentication tickets, 551&lt;br /&gt;Cookies collection, 554&lt;br /&gt;CORBA (Common Object Request&lt;br /&gt;Broker Architecture), 649&lt;br /&gt;Count property, DataSet Tables collection,&lt;br /&gt;383&lt;br /&gt;COUNT() function, SQL, 229&lt;br /&gt;CREATE PROCEDURE command, 300&lt;br /&gt;CreateText() method, File class, 562&lt;br /&gt;&lt;credentials&gt; tag, Web.config file, 540&lt;br /&gt;CSS (Cascading Style Sheets)&lt;br /&gt;a:hover and a:link pseudo-elements,&lt;br /&gt;126&lt;br /&gt;Dorknozzle project styling, 124&lt;br /&gt;formatting Web controls, 114&lt;br /&gt;CssClass property, 118&lt;br /&gt;currency data&lt;br /&gt;display format, 477&lt;br /&gt;validation, 143&lt;br /&gt;CurrentPageIndex property, DataGrid&lt;br /&gt;control, 379&lt;br /&gt;custom authentication tickets, 551&lt;br /&gt;custom error messages, 548&lt;br /&gt;&lt;customerrors&gt; tag, Web.config file,&lt;br /&gt;503&lt;br /&gt;CustomValidator control, 157, 719&lt;br /&gt;D&lt;br /&gt;data access&lt;br /&gt;ADO.NET, 243&lt;br /&gt;data binding, 272&lt;br /&gt;ListBox controls, 289&lt;br /&gt;Page_Load() method, 293&lt;br /&gt;queries to controls, 261&lt;br /&gt;data controls, ASP.NET&lt;br /&gt;(see alsoDataGrid control; DataList&lt;br /&gt;control; Repeater control)&lt;br /&gt;controls collection, 329&lt;br /&gt;shopping cart interface, 457&lt;br /&gt;data loss&lt;br /&gt;modifying Global.asax, 430&lt;br /&gt;data source binding&lt;br /&gt;CheckBoxList control, 105&lt;br /&gt;ListBox control, 106&lt;br /&gt;RadioButtonList control, 104–105&lt;br /&gt;data sources&lt;br /&gt;text files as, 567&lt;br /&gt;data types&lt;br /&gt;Access, 170&lt;br /&gt;C# and VB.NET, tabulated, 56&lt;br /&gt;SQL Server, 173&lt;br /&gt;validation, 141&lt;br /&gt;variable declarations and, 54&lt;br /&gt;DataAdapter class&lt;br /&gt;properties, 414&lt;br /&gt;databases&lt;br /&gt;(see alsoAccess databases; MSDE;&lt;br /&gt;SQL Server databases;&lt;br /&gt;Dorknozzle database)&lt;br /&gt;connections and the DataReader&lt;br /&gt;classes, 245&lt;br /&gt;DataSets as virtual databases, 365&lt;br /&gt;deleting records from a Web application,&lt;br /&gt;288&lt;br /&gt;deleting records using DataGrids,&lt;br /&gt;336&lt;br /&gt;deleting records using DataLists, 352&lt;br /&gt;design, 161&lt;br /&gt;importing into MSDE, 178&lt;br /&gt;inserting records from a Web application,&lt;br /&gt;275&lt;br /&gt;725 Order the print version of this book to get all 700+ pages!&lt;br /&gt;namespaces and ADO.NET, 244&lt;br /&gt;shopping cart application, 456&lt;br /&gt;storing login credentials, 542&lt;br /&gt;suitable for use with ASP.NET, 6&lt;br /&gt;terminology, 162&lt;br /&gt;updating from a Web application,&lt;br /&gt;279&lt;br /&gt;updating from modified DataSets,&lt;br /&gt;414&lt;br /&gt;updating using DataGrids, 329&lt;br /&gt;Web Services interaction, 676&lt;br /&gt;DataColumn element, DataTables&lt;br /&gt;adding calculated values, 398&lt;br /&gt;assigning default values, 394&lt;br /&gt;auto incrementing and uniqueness,&lt;br /&gt;397&lt;br /&gt;creating programmatically, 385&lt;br /&gt;setting properties programmatically,&lt;br /&gt;393&lt;br /&gt;shopping cart application, 469&lt;br /&gt;DataField property, BoundColumns&lt;br /&gt;control, 312&lt;br /&gt;DataGrid control, 305–339&lt;br /&gt;advantages over Repeater control,&lt;br /&gt;306&lt;br /&gt;binding a DataSet to, 386&lt;br /&gt;binding event logs to, 521&lt;br /&gt;binding to DataSets, 432&lt;br /&gt;column controls, 317&lt;br /&gt;Company Events Web Service, 679&lt;br /&gt;customizing presentation, 310&lt;br /&gt;directory listing example, 570&lt;br /&gt;modifying quantities in, 478&lt;br /&gt;page output caching, 439&lt;br /&gt;paging functionality, 376, 378&lt;br /&gt;restricting editability, 333&lt;br /&gt;shared access to DataSets, 374&lt;br /&gt;shopping cart application, 453, 457,&lt;br /&gt;462&lt;br /&gt;sorting columns in, 410, 412&lt;br /&gt;styling DataGrids, 313&lt;br /&gt;using templates, 333&lt;br /&gt;DataItem() method, Repeater class, 264&lt;br /&gt;DataKeyField property&lt;br /&gt;DataGrid , 330, 478, 481&lt;br /&gt;DataList, 349&lt;br /&gt;DataList control, 339&lt;br /&gt;advantages over Repeater control,&lt;br /&gt;306&lt;br /&gt;binding database items to, 468&lt;br /&gt;customizing using styles, 344&lt;br /&gt;editing items within a DataList, 346&lt;br /&gt;navigation menus using, 354&lt;br /&gt;shopping cart application, 453, 457,&lt;br /&gt;461&lt;br /&gt;DataMember property&lt;br /&gt;DataGrid control, 374&lt;br /&gt;DataMember property, DataGrid, 372–&lt;br /&gt;373&lt;br /&gt;DataReader classes&lt;br /&gt;database connection and, 245&lt;br /&gt;DataReader control&lt;br /&gt;binding to a DataGrid, 307&lt;br /&gt;DataSets as alternatives, 363, 367&lt;br /&gt;DataRelation class, 402&lt;br /&gt;DataRow element, DataTables&lt;br /&gt;adding items to a shopping cart, 470&lt;br /&gt;creating programmatically, 387&lt;br /&gt;DataSet object, ADO.NET, 363–379&lt;br /&gt;binding from within code, 368&lt;br /&gt;binding to a DataGrid, 386&lt;br /&gt;binding using application variables,&lt;br /&gt;424&lt;br /&gt;DataTable information display, 382&lt;br /&gt;elements, 367&lt;br /&gt;as memory-resident virtual databases,&lt;br /&gt;365&lt;br /&gt;performance enhancement with application&lt;br /&gt;state, 430&lt;br /&gt;selectCompanyEvents.asmx, 678&lt;br /&gt;selecting DataTables, 372&lt;br /&gt;shared access, 374&lt;br /&gt;updating databases from, 414&lt;br /&gt;Datasheet View, Access, 178, 207&lt;br /&gt;Order the print version of this book to get all 700+ pages! 726&lt;br /&gt;Index&lt;br /&gt;DataTable object, 379–407&lt;br /&gt;binding to a DataGrid, 473&lt;br /&gt;creating programmatically, 380&lt;br /&gt;DataRelations between, 402&lt;br /&gt;looping through, 482&lt;br /&gt;modifying, to update the database,&lt;br /&gt;416&lt;br /&gt;not derived from the database, 379&lt;br /&gt;populating, using DataRows, 387&lt;br /&gt;setting properties programmatically,&lt;br /&gt;390&lt;br /&gt;DataTextField property, DataGrid&lt;br /&gt;control, 319&lt;br /&gt;DataView object, 407&lt;br /&gt;filtering, 408&lt;br /&gt;filtering navigation, 638&lt;br /&gt;page data caching, 445&lt;br /&gt;sorting column data, 444&lt;br /&gt;date and time functions, 27, 227&lt;br /&gt;date information&lt;br /&gt;date format validation, 141&lt;br /&gt;multidimensional string arrays, 618&lt;br /&gt;DATE() and DATEADD() functions,&lt;br /&gt;228&lt;br /&gt;DATEPART() function, 230&lt;br /&gt;DateTime class, 27&lt;br /&gt;DayNameFormat property, Calendar&lt;br /&gt;control, 613&lt;br /&gt;DayRender event, Calendar control,&lt;br /&gt;617&lt;br /&gt;DBMS (Database Management Systems),&lt;br /&gt;163&lt;br /&gt;DCOM (Distributed Component Object&lt;br /&gt;Model), 649&lt;br /&gt;debug mode, Web.config file setting,&lt;br /&gt;503&lt;br /&gt;Debugger, 522–530&lt;br /&gt;attaching a process, 523&lt;br /&gt;breakpoint creation, 525&lt;br /&gt;Decimal.Round() method, 477&lt;br /&gt;default page configuration, 16&lt;br /&gt;Default.aspx page&lt;br /&gt;custom authentication tickets, 554&lt;br /&gt;Forms Authentication, 536&lt;br /&gt;DefaultValue property, DataColumn&lt;br /&gt;element, 394&lt;br /&gt;DefaultView property, DataTable class,&lt;br /&gt;407&lt;br /&gt;delete anomalies, 167&lt;br /&gt;delete operations&lt;br /&gt;modified DataSets, 415&lt;br /&gt;using DataGrids, 336&lt;br /&gt;using DataLists, 352&lt;br /&gt;DELETE statement, SQL, 220&lt;br /&gt;deleting records from a Web application,&lt;br /&gt;288&lt;br /&gt;Delete() method&lt;br /&gt;DataRow class, 485&lt;br /&gt;DataTable class, 417&lt;br /&gt;&lt;deny&gt; element, Web.config file, 538&lt;br /&gt;Departments table, Dorknozzle database,&lt;br /&gt;180&lt;br /&gt;Access query using, 200&lt;br /&gt;creating, 175&lt;br /&gt;INNER JOIN involving, 236&lt;br /&gt;primary key illustration, 184&lt;br /&gt;relationship with Employees table,&lt;br /&gt;167, 186, 191&lt;br /&gt;table structure, 167&lt;br /&gt;updating from a DataSet, 415&lt;br /&gt;DeptLookup table, Dorknozzle database,&lt;br /&gt;192&lt;br /&gt;Deserialize() method, BinaryFormatter&lt;br /&gt;class, 594&lt;br /&gt;Design View, Access, 170, 178&lt;br /&gt;generating a query, 199&lt;br /&gt;Dim keyword, 55&lt;br /&gt;directives, 33, 43–44&lt;br /&gt;(see also server-side include directives)&lt;br /&gt;Import directive, 70&lt;br /&gt;OutputCache directive, 439&lt;br /&gt;Register directive, 626, 629–630,&lt;br /&gt;632&lt;br /&gt;727 Order the print version of this book to get all 700+ pages!&lt;br /&gt;WebService directive, 654&lt;br /&gt;directories&lt;br /&gt;accessing, 568&lt;br /&gt;working with directory paths, 573&lt;br /&gt;directory browsing, 16&lt;br /&gt;Directory class&lt;br /&gt;GetFiles() and other methods, 572&lt;br /&gt;Directory Listing Denied message, 16&lt;br /&gt;disconnected data model, 364&lt;br /&gt;Display property&lt;br /&gt;validation controls, 148, 151&lt;br /&gt;DisplayName() method&lt;br /&gt;user controls, 635&lt;br /&gt;DISTINCT keyword, SQL, 209&lt;br /&gt;distributed computing&lt;br /&gt;Web Services and, 648&lt;br /&gt;&lt;div&gt; tag&lt;br /&gt;Panel control and, 106&lt;br /&gt;Do loops, 66&lt;br /&gt;Do While loops, 68&lt;br /&gt;document wide styles, 115&lt;br /&gt;DocumentSource property, XML control,&lt;br /&gt;605&lt;br /&gt;dog analogy, OOP, 73&lt;br /&gt;doGoogleSearch() method, 671&lt;br /&gt;Google Search Service example, 672&lt;br /&gt;doQuery() function&lt;br /&gt;Google Search Service example, 671&lt;br /&gt;Dorknozzle database&lt;br /&gt;(see also individual tables)&lt;br /&gt;creating tables, 170, 172&lt;br /&gt;creating using Access, 165&lt;br /&gt;creating using Web Data Administrator,&lt;br /&gt;165&lt;br /&gt;DataRelations example, 403&lt;br /&gt;defining primary keys, 185&lt;br /&gt;formatted data from, using DataGrids,&lt;br /&gt;310&lt;br /&gt;relationships, 193&lt;br /&gt;sorting column data, 412&lt;br /&gt;update functionality using DataLists,&lt;br /&gt;349&lt;br /&gt;Dorknozzle Intranet Application&lt;br /&gt;admin tools page, 280, 638&lt;br /&gt;Company Events page, 676, 678&lt;br /&gt;company newsletter page, 580, 582&lt;br /&gt;defining as a Web application, 542&lt;br /&gt;designing the Helpdesk application&lt;br /&gt;form, 127&lt;br /&gt;employee directory, 267&lt;br /&gt;forms upload functionality, 577&lt;br /&gt;functionality, 119&lt;br /&gt;introduced, 119&lt;br /&gt;navigation menu, 120&lt;br /&gt;shopping cart application, 452&lt;br /&gt;user controls, 626&lt;br /&gt;using CompareValidator, 143&lt;br /&gt;using RangeValidator, 146&lt;br /&gt;using RequiredFieldValidator, 136&lt;br /&gt;using ValidationSummary, 152&lt;br /&gt;dot operator, 75&lt;br /&gt;downlevel setting, ClientTarget attribute,&lt;br /&gt;134&lt;br /&gt;drop-down menus&lt;br /&gt;binding data sources, 272&lt;br /&gt;HtmlSelect control, 92&lt;br /&gt;IsPostBack use, 112, 114&lt;br /&gt;DropDownList control, 105, 705&lt;br /&gt;admintools.aspx page, 281&lt;br /&gt;binding DataViews to, 409&lt;br /&gt;class for, Dorknozzle project, 126&lt;br /&gt;directory listing example, 569&lt;br /&gt;duplicate data&lt;br /&gt;avoiding, with relationships, 186&lt;br /&gt;DISTINCT keyword and, 209&lt;br /&gt;dynamic display&lt;br /&gt;validation controls, 148&lt;br /&gt;E&lt;br /&gt;eBay, 486&lt;br /&gt;ecommerce sites&lt;br /&gt;master/detail pages, 317&lt;br /&gt;EditButtonColumn control, 346&lt;br /&gt;Order the print version of this book to get all 700+ pages! 728&lt;br /&gt;Index&lt;br /&gt;EditCommand event, DataList control,&lt;br /&gt;346–347&lt;br /&gt;EditCommandColumn control, DataGrid,&lt;br /&gt;317, 324, 465, 478&lt;br /&gt;EditItemIndex property&lt;br /&gt;DataGrid control, 328, 479&lt;br /&gt;&lt;edititemtemplate&gt; tag, 334, 347,&lt;br /&gt;465&lt;br /&gt;email&lt;br /&gt;configuring IIS for, 580&lt;br /&gt;creating the interface, 582&lt;br /&gt;rendering HTML in, 586&lt;br /&gt;sending from ASP.NET, 579&lt;br /&gt;email address validation&lt;br /&gt;using CustomValidator, 159&lt;br /&gt;using regular expressions, 153, 156&lt;br /&gt;email programs&lt;br /&gt;appointment schedulers, 616&lt;br /&gt;serialization and deserialization, 588&lt;br /&gt;Employees table, Dorknozzle database,&lt;br /&gt;180&lt;br /&gt;Acces