<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Knowledge Capsules</title>
    <description>Practical Knowledge for Web Developers</description>
    <link>http://www.aggiorno.com/blogs/aggiornings/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.4.5.0</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://www.aggiorno.com/blogs/aggiornings/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Aggiorno Knowledge Capsules</dc:creator>
    <dc:title>Knowledge Capsules</dc:title>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/AggiornoKnowledgeCapsules" type="application/rss+xml" /><feedburner:browserFriendly></feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>To tag or not to tag?  IE8 Compatibility mode: when should I care?</title>
      <description>&lt;p&gt;
&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;The short answer is &lt;strong&gt;&lt;span style="font-family: 'Trebuchet MS','sans-serif'"&gt;ALWAYS&lt;/span&gt;&lt;/strong&gt;!&amp;nbsp; But let&amp;rsquo;s&amp;nbsp;rewind a bit and provide some context.&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;You probably know by now that IE8 renders pages in standard mode by default.&amp;nbsp; The IE8 team made this decision to ensure the best experience for their users moving forward.&amp;nbsp; At the same time, the team has been very concerned about all the &amp;ldquo;hacks&amp;rdquo; that people had to go through to render pages using older versions of IE.&amp;nbsp; This is why Microsoft decided to provide a compatibility mode in IE8 to help during the transition and provide the best possible experience to users of non standard web sites.&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;&lt;a href="http://blogs.msdn.com/ie/archive/2009/02/16/just-the-facts-recap-of-compatibility-view.aspx" target="_blank" title="Summary of IE8 Compatibility mode"&gt;&lt;span&gt;A very complete summary on the IE8 team blog about compatibility can be found following this link&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;.&amp;nbsp; &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;Here is an excerpt from the above post that really answers the question: &amp;ldquo;to tag or not to tag?&amp;rdquo; &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;&amp;ldquo;Site owners are *always* in control of their content.&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt; By default, Internet Explorer uses DOCTYPE switching to determine Quirks v. Standards mode (again, Standards mode maps to IE8 Standards by default). Site owners can choose to use the X-UA-Compatible tag to be absolutely declarative about how they&amp;rsquo;d like their site to display and to map Standards mode pages to IE7 Standards. Use of the X-UA-Compatible tag overrides Compatibility View on the client.&amp;rdquo;&amp;nbsp; &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;Compatibility mode can be triggered programmatically and I believe this is what every developer should do. &amp;nbsp;The reason is simple, you want to give your customer the best possible experience on your site.&amp;nbsp;&amp;nbsp;You don&amp;#39;t need to give your customer unnecessary choices. &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;There are several scenarios: &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;- If you have already tested your web site in IE7 and you are not yet prepared to make the transition you can just add the compatibility meta tag to all &amp;nbsp;your pages and they will automatically render in IE7 mode. &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;- If you are gradually transitioning to more standard code, you can selectively add the compatibility meta tag to the pages that you have not fixed and maybe never will (outdated content, support pages, etc...). &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;- If your code works well with IE8 then you should add the IE8 met tag! &amp;nbsp;This will ensure that your code will continue to render correctly even after the next browser transition. &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;In summary, the compatibility UA-X meta tag is the perfect way to ensure that your customers will enjoy your pages the way they were intended. &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;At ArtinSoft we have created the IE8 Compatibility Wizard that allows you to automate the meta tagging process. &amp;nbsp;You can check it out at: &lt;/span&gt;&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;&lt;a href="http://www.aggiorno.com/aggiornoexpress.aspx"&gt;&lt;span&gt;http://www.aggiorno.com/aggiornoexpress.aspx&lt;/span&gt;&lt;/a&gt; &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;&lt;/span&gt;&lt;span style="font-size: 10.5pt; font-family: 'Trebuchet MS','sans-serif'"&gt;Go ahead and TAG all your pages!&lt;/span&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;
&lt;/p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.aggiorno.com%2fblogs%2faggiornings%2fpost%2fTo-tag-or-not-to-tag-IE8-Compatibility-mode-when-should-I-care.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.aggiorno.com%2fblogs%2faggiornings%2fpost%2fTo-tag-or-not-to-tag-IE8-Compatibility-mode-when-should-I-care.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
</description>
      <link>http://www.aggiorno.com/blogs/aggiornings/post/To-tag-or-not-to-tag-IE8-Compatibility-mode-when-should-I-care.aspx</link>
      <author>name.nospam@nospam.example.com (César Muñoz)</author>
      <comments>http://www.aggiorno.com/blogs/aggiornings/post/To-tag-or-not-to-tag-IE8-Compatibility-mode-when-should-I-care.aspx#comment</comments>
      <guid>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=556ae749-b2a3-470d-8e7c-0d2634c28b26</guid>
      <pubDate>Tue, 17 Feb 2009 08:36:00 -1400</pubDate>
      <category>accessibility</category>
      <category>html</category>
      <category>ie</category>
      <category>standards</category>
      <dc:publisher>César Muñoz</dc:publisher>
      <pingback:server>http://www.aggiorno.com/blogs/aggiornings/pingback.axd</pingback:server>
      <pingback:target>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=556ae749-b2a3-470d-8e7c-0d2634c28b26</pingback:target>
      <slash:comments>507</slash:comments>
      <trackback:ping>http://www.aggiorno.com/blogs/aggiornings/trackback.axd?id=556ae749-b2a3-470d-8e7c-0d2634c28b26</trackback:ping>
      <wfw:comment>http://www.aggiorno.com/blogs/aggiornings/post/To-tag-or-not-to-tag-IE8-Compatibility-mode-when-should-I-care.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aggiorno.com/blogs/aggiornings/syndication.axd?post=556ae749-b2a3-470d-8e7c-0d2634c28b26</wfw:commentRss>
    </item>
    <item>
      <title>Trick to install the Aggiorno Add-in in Visual Studio Shell Integrated Mode</title>
      <description>&lt;h2&gt;What are we facing?&lt;/h2&gt;
&lt;p&gt;
I have some products integrated in &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=2e9a8c35-eb3d-43eb-9122-a5ec195cd7bb&amp;amp;displaylang=en"&gt;Visual Studio 2008 Shell (integrated mode)&lt;/a&gt; like &lt;a href="http://www.php-compiler.net/doku.php?id=core%3aphp-in-vs2008"&gt;Phalanger&lt;/a&gt;. I would love to have Aggiorno &lt;a href="http://www.aggiorno.com/try-aggiorno-addin.aspx"&gt;Add-in&lt;/a&gt; installed in VS 2008 Shell integrated mode, so I could use it along with the integrated products.
&lt;/p&gt;
&lt;h2&gt;The Solution&lt;/h2&gt;
&lt;p&gt;
Let&amp;#39;s assume you have Visual Studio 2008 Shell Integrated mode already installed. Let&amp;#39;s assume you have .msi file of Aggiorno which is the installer for the Aggiorno Add-in. 
&lt;/p&gt;
&lt;p&gt;
You&amp;rsquo;ll first have to run the following registry file, that you can download:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.aggiorno.com/blogs/aggiornings/file.axd?file=2008%2f10%2fInstallOnVsIntegrated.reg"&gt;InstallOnVsIntegrated.reg (340.00 bytes)&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Which contains the following code
&lt;/p&gt;
&lt;pre&gt;
 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Setup]
&amp;quot;Dbghelp_path&amp;quot;=&amp;quot;C:\\Program Files\\Microsoft Visual Studio 9.0&amp;quot;
&lt;/pre&gt;
&lt;p&gt;
After you run it (in Vista you do a right-click on the file and click &amp;quot;Merge&amp;quot;) you now can install Aggiorno Add-in on Visual Studio Shell, just run the installer.
&lt;/p&gt;
&lt;p&gt;
In that way you will be able to see Aggiorno along with Phalanger coexisting happily.
&lt;/p&gt;
&lt;h2&gt;Some external resources&lt;/h2&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/vsx2008/products/bb933751.aspx"&gt;Visual Studio Shell overview&lt;/a&gt;.&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.php-compiler.net"&gt;Phalanger&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="advertisement"&gt;
[advertisement] Try &lt;a href="http://www.aggiorno.com/try.aspx?dalfaro-phalanger-integrated"&gt;Aggiorno&lt;/a&gt; for free, the assistant tool for web development you always wanted. 
&lt;/div&gt;
</description>
      <link>http://www.aggiorno.com/blogs/aggiornings/post/Trick-to-install-Aggiorno-Add-in-in-Visual-Studio-Shell-Integrated-Mode.aspx</link>
      <author>name.nospam@nospam.example.com (David Alfaro)</author>
      <comments>http://www.aggiorno.com/blogs/aggiornings/post/Trick-to-install-Aggiorno-Add-in-in-Visual-Studio-Shell-Integrated-Mode.aspx#comment</comments>
      <guid>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=b5bc915b-f74f-401f-8dc4-4d054f88f24e</guid>
      <pubDate>Fri, 31 Oct 2008 05:09:00 -1400</pubDate>
      <category>hacks</category>
      <category>tips</category>
      <dc:publisher>David Alfaro</dc:publisher>
      <pingback:server>http://www.aggiorno.com/blogs/aggiornings/pingback.axd</pingback:server>
      <pingback:target>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=b5bc915b-f74f-401f-8dc4-4d054f88f24e</pingback:target>
      <slash:comments>230</slash:comments>
      <trackback:ping>http://www.aggiorno.com/blogs/aggiornings/trackback.axd?id=b5bc915b-f74f-401f-8dc4-4d054f88f24e</trackback:ping>
      <wfw:comment>http://www.aggiorno.com/blogs/aggiornings/post/Trick-to-install-Aggiorno-Add-in-in-Visual-Studio-Shell-Integrated-Mode.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aggiorno.com/blogs/aggiornings/syndication.axd?post=b5bc915b-f74f-401f-8dc4-4d054f88f24e</wfw:commentRss>
    </item>
    <item>
      <title>Leaving element table borders behind</title>
      <description>&lt;strong&gt;&lt;span style="font-size: 18pt; font-family: &amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;"&gt;
    &lt;h2&gt;&lt;strong&gt;&lt;span style="font-size: 18pt; font-family: &amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;"&gt;What are we facing?&lt;/span&gt;&lt;/strong&gt; &lt;/h2&gt;
  &lt;/span&gt;&lt;/strong&gt;

&lt;p&gt;There still are some web pages that use HTML tables to surround an element with a border.&amp;#160; Is there a better way to do this using CSS and crystal-clear HTML code?&lt;/p&gt;

&lt;h2&gt;The Solution&lt;/h2&gt;

&lt;p&gt;It is surprising that in this age of the Web 2.0 it is still possible to find web pages that use tables to add a border to an HTML element.&amp;#160; For example, the following code adds a border 30 pixel thick around a p block:&lt;/p&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 10pt"&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;#39;Courier New&amp;#39;"&gt;table&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt; &lt;span style="color: red"&gt;bgcolor&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;green&amp;quot;&amp;gt; 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;#39;Courier New&amp;#39;"&gt;tr&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;#39;Courier New&amp;#39;"&gt;td&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt; &lt;span style="color: red"&gt;colspan&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;3&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;img&lt;/span&gt; &lt;span style="color: red"&gt;src&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;imgs/spacer.GIF&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;height&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;30&amp;quot;/&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;tr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;tr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;img&lt;/span&gt; &lt;span style="color: red"&gt;src&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;imgs/spacer.GIF&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;width&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;30&amp;quot;/&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;p &lt;font color="#ff0000"&gt;&lt;font size="2"&gt;width&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font size="2"&gt;=&amp;quot;150&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;Paragraph content&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;p&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;img&lt;/span&gt; &lt;span style="color: red"&gt;src&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;imgs/spacer.GIF&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;width&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;30&amp;quot;/&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;tr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;tr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt; &lt;span style="color: red"&gt;colspan&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;3&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;img&lt;/span&gt; &lt;span style="color: red"&gt;src&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;imgs/spacer.GIF&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;height&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;30&amp;quot;/&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;tr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; 

  &lt;br /&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;table&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;gt;&lt;/span&gt; &lt;/p&gt;

&lt;p&gt;At first sight this code is clumsy and certainly is a cause of distraction to the eye and the mind.&amp;#160; It takes a few valuable seconds of one’s brain processing time to determine that all those empty cells are there just to create a border around a single element.&lt;/p&gt;

&lt;p&gt;It would be great to improve the readability and maintainability of this code fragment and we should also separate presentation details from the actual content.&lt;/p&gt;

&lt;p&gt;The steps necessary to improve this code can be summarized with html-like pattern syntax in the following way:&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Pattern to detect&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;#39;Courier New&amp;#39;"&gt;table&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt; &lt;span style="color: red"&gt;bgcolor&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;&lt;span style="background: yellow"&gt;{Color}&lt;/span&gt;&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;cellpadding&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;0&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;cellspacing&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;0&amp;quot;&amp;gt; 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;#39;Courier New&amp;#39;"&gt;tr&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;#39;Courier New&amp;#39;"&gt;td&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt; &lt;span style="color: red"&gt;colspan&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;3&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;img&lt;/span&gt; &lt;span style="color: red"&gt;src&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;imgs/spacer.GIF&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;height&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;&lt;span style="background: yellow"&gt;{BorderTopHeight}&lt;/span&gt;&amp;quot;/&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;tr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span style="color: blue"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;tr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;img&lt;/span&gt; &lt;span style="color: red"&gt;src&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;imgs/spacer.GIF&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;width&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;&lt;span style="background: yellow"&gt;{LeftBorderWidth}&lt;/span&gt;&amp;quot;/&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt; &lt;span style="color: red"&gt;width&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;&lt;span style="background: yellow"&gt;{ContentWidth}&lt;/span&gt;&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;p&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: yellow"&gt;{Content}&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;p&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;img&lt;/span&gt; &lt;span style="color: red"&gt;src&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;imgs/spacer.GIF&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;width&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;&lt;span style="background: yellow"&gt;{RightBorderWidth}&lt;/span&gt;&amp;quot;/&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;tr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;tr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt; &lt;span style="color: red"&gt;colspan&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;3&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;img&lt;/span&gt; &lt;span style="color: red"&gt;src&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;imgs/spacer.GIF&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;height&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;&lt;span style="background: yellow"&gt;{BorderBottomHeight}&lt;/span&gt;&amp;quot;/&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;td&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;tr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; 

  &lt;br /&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;table&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;gt;&lt;/span&gt;&lt;font face="Calibri" size="3"&gt;&amp;#160;&lt;/font&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Replacement&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;p class=”border30”&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9pt; background: yellow; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;{Content}&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;p&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;gt;&lt;/span&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Additional elements&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;#39;Courier New&amp;#39;"&gt;style&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt; &lt;span style="color: red"&gt;type&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;text/css&amp;quot;&amp;gt; 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span style="color: #a31515"&gt;p.border30&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ 

    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span style="color: red"&gt;&amp;#160;&amp;#160; background-color&lt;/span&gt;:&lt;span style="background: yellow; color: blue"&gt;{Color}&lt;/span&gt;; 

    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span style="color: red"&gt;&amp;#160;&amp;#160; border&lt;/span&gt;:&lt;span style="color: blue"&gt;solid&lt;/span&gt; &lt;span style="background: yellow; color: blue"&gt;{BorderTopHeight}&lt;/span&gt;&lt;span style="color: blue"&gt;px &lt;span style="background: yellow"&gt;{RightBorderWidth}&lt;/span&gt;px &lt;span style="background: yellow"&gt;{BorderBottomHeight}&lt;/span&gt;px &lt;span style="background: yellow"&gt;{LeftBorderWidth}&lt;/span&gt;px&lt;/span&gt; &lt;span style="background: yellow; color: blue"&gt;{Color}&lt;/span&gt;; 

    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span style="color: red"&gt;&amp;#160;&amp;#160; width&lt;/span&gt;:&lt;span style="background: yellow; color: blue"&gt;{ContentWidth}&lt;/span&gt;&lt;span style="color: blue"&gt;px&lt;/span&gt;;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&lt;/span&gt; 

  &lt;br /&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;style&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;gt;&lt;/span&gt; &lt;/p&gt;

&lt;p&gt;The style included in the Additional elements section needs to be inserted in the same page’s head block.&lt;/p&gt;

&lt;p&gt;For our example, the final code would be:&lt;/p&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 10pt"&gt;&lt;/p&gt;
&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;p class=”border30”&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;Paragraph content&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;p&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; 

&lt;p class="MsoNormal" style="margin: 0in 0in 10pt"&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;This code really is crystal-clear to the eye and the mind and could be produced by a relatively simple pattern.&lt;/p&gt;

&lt;h2&gt;Some external references&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://www.w3.org/TR/CSS21/box.html#propdef-border "&gt;CSS border properties&lt;/a&gt;&lt;/p&gt;

&lt;div class="advertisement"&gt;[advertisement] Try &lt;a href="http://www.aggiorno.com/try.aspx?cmunoz-table-border"&gt;Aggiorno&lt;/a&gt; for free, the assistant tool for web development you always wanted. &lt;/div&gt;</description>
      <link>http://www.aggiorno.com/blogs/aggiornings/post/Leaving-element-table-borders-behind.aspx</link>
      <author>name.nospam@nospam.example.com (César Muñoz)</author>
      <comments>http://www.aggiorno.com/blogs/aggiornings/post/Leaving-element-table-borders-behind.aspx#comment</comments>
      <guid>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=83d392cc-0c66-45ed-a31e-1c0111a155ab</guid>
      <pubDate>Fri, 17 Oct 2008 12:26:00 -1400</pubDate>
      <category>css</category>
      <category>html</category>
      <dc:publisher>César Muñoz</dc:publisher>
      <pingback:server>http://www.aggiorno.com/blogs/aggiornings/pingback.axd</pingback:server>
      <pingback:target>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=83d392cc-0c66-45ed-a31e-1c0111a155ab</pingback:target>
      <slash:comments>267</slash:comments>
      <trackback:ping>http://www.aggiorno.com/blogs/aggiornings/trackback.axd?id=83d392cc-0c66-45ed-a31e-1c0111a155ab</trackback:ping>
      <wfw:comment>http://www.aggiorno.com/blogs/aggiornings/post/Leaving-element-table-borders-behind.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aggiorno.com/blogs/aggiornings/syndication.axd?post=83d392cc-0c66-45ed-a31e-1c0111a155ab</wfw:commentRss>
    </item>
    <item>
      <title>Adding advanced validation to an existing ASP.NET application</title>
      <description>&lt;h2&gt;What are we facing?&lt;/h2&gt;

&lt;p&gt;I want to add validation to an existing ASP.NET application. The business entities used by the application are defined on a separate assembly, used by other desktop applications. The validation mechanism provided by ASP.NET is not enough because:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;I want to easily add my own customized, complex validation rules. &lt;/li&gt;

  &lt;li&gt;I’d like to avoid defining the same rules on both the desktop applications and the web applications. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;&amp;#160;&lt;/h2&gt;

&lt;h2&gt;The solution&lt;/h2&gt;

&lt;p&gt;You can use the &lt;a href="http://msdn.microsoft.com/en-us/library/cc309509.aspx"&gt;Validation Application Block&lt;/a&gt; (VAP) included in the version 4.0 of &lt;a href="http://msdn.microsoft.com/en-us/library/cc512464.aspx"&gt;Enterprise Library&lt;/a&gt;. When using the VAP you decorate your business entities with &lt;a href="http://msdn.microsoft.com/en-us/library/cc309353.aspx"&gt;attributes&lt;/a&gt; indicating the validation performed against their properties. For instance, you might have a class Person which defines, among other members, the property Age as an integer number between 21 and 100.&lt;/p&gt;

&lt;p&gt;In order to specify the constraint just described with VAP, the property Age in your Person class should be decorated with a &lt;a href="http://msdn.microsoft.com/en-us/library/cc309347.aspx"&gt;RangeValidator&lt;/a&gt;, just as follows:&lt;/p&gt;

&lt;p&gt;&lt;font face="Courier New" size="2"&gt;[RangeValidator(21, RangeBoundaryType.Inclusive, 100, RangeBoundaryType.Inclusive, Ruleset = &amp;quot;GenericPerson&amp;quot;, MessageTemplate = &amp;quot;Invalid value&amp;quot;)]&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Courier New" size="2"&gt;public int Age&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Courier New" size="2"&gt;{ … }&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Courier New" size="2"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Back to your ASP.NET application, we assume you already have a Web Form to collect Person data. The markup corresponding to the control used to collect the age value might look as follows:&lt;/p&gt;

&lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;lt;asp:TextBox ID=&amp;quot;AgeTextBox&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;The first thing you need to do in order to take advantage of VAP and your already defined validation rules is adding references to Microsoft.Practices.EnterpriseLibrary.Validation and Microsoft.Practices.EnterpriseLibrary.Validation.Integration.AspNet –which allows connecting VAP with ASP.NET applications through the usage of the PropertyProxyValidator class. You may also need to add a reference to the assembly where the business entities are defined, along with their validation rules. More details on how to prepare your ASP.NET application in order to use the Validation Application Block can be found on the &lt;a href="http://msdn.microsoft.com/en-us/library/cc309323.aspx"&gt;block’s documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once your application has the needed references you’ll need to register the namespace in which the VAP classes are defined. This can be accomplished by inserting the following code after the Page directive in your ASPX markup:&lt;/p&gt;

&lt;p&gt;&lt;font face="Courier" size="2"&gt;&amp;lt;%@ Register Assembly=&amp;quot;Microsoft.Practices.EnterpriseLibrary.Validation.Integration.AspNet&amp;quot;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Courier" size="2"&gt;Namespace=&amp;quot;Microsoft.Practices.EnterpriseLibrary.Validation.Integration.AspNet&amp;quot;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Courier" size="2"&gt;TagPrefix=&amp;quot;vab&amp;quot; %&amp;gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Now you can add validators to your controls, associating them to the existing controls in your web form. The resulting markup should look like follows:&lt;/p&gt;

&lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;lt;asp:TextBox ID=&amp;quot;AgeTextBox&amp;quot; runat=&amp;quot;server&amp;quot; CausesValidation=&amp;quot;True&amp;quot;&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;lt;vab:propertyproxyvalidator id=&amp;quot;AgeValidator&amp;quot; runat=&amp;quot;server&amp;quot; ControlToValidate=&amp;quot;AgeTextBox&amp;quot; PropertyName=&amp;quot;Age&amp;quot; RulesetName=&amp;quot;GenericPerson&amp;quot; SourceTypeName=&amp;quot;BusinessLayer.Person&amp;quot;&amp;gt;Please enter a number between 21 and 100&amp;lt;/vab:propertyproxyvalidator&amp;gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;That’s it! Your form has got validation through the usage of the VAB. You can also use the validation defined by the referenced business entities in other web forms or in a desktop application. Now if an invalid value is submitted an error message will be displayed:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.aggiorno.com/blogs/aggiornings/image.axd?picture=WindowsLiveWriter/Addingadvancedvalidationt.NETapplication_10CDD/clip_image002%5B4%5D.gif"&gt;&lt;img title="clip_image002[4]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="96" alt="clip_image002[4]" src="http://www.aggiorno.com/blogs/aggiornings/image.axd?picture=WindowsLiveWriter/Addingadvancedvalidationt.NETapplication_10CDD/clip_image002%5B4%5D_thumb.gif" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h2&gt;Some external references&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;The Validation Application Block provides several other validators besides the RangeValidator used in this post. For more information about other validators please refer to &lt;a href="http://msdn.microsoft.com/en-us/library/cc309336.aspx"&gt;this topic&lt;/a&gt; on the online documentation. &lt;/li&gt;

  &lt;li&gt;You can add customized validators for more complex validation rules. Please refer to &lt;a href="http://msdn.microsoft.com/en-us/library/cc309360.aspx"&gt;this topic&lt;/a&gt; for more details on how to extend existing validators and how to develop your new ones.&amp;#160; &lt;/li&gt;
&lt;/ul&gt;

&lt;div class="advertisement"&gt;[advertisement] Try &lt;a href="http://www.aggiorno.com/try.aspx?rmendez-advanced-validation"&gt;Aggiorno&lt;/a&gt; for free, the assistant tool for web development you always wanted. &lt;/div&gt;</description>
      <link>http://www.aggiorno.com/blogs/aggiornings/post/Adding-advanced-validation-to-an-existing-ASPNET-application.aspx</link>
      <author>name.nospam@nospam.example.com (rmendez)</author>
      <comments>http://www.aggiorno.com/blogs/aggiornings/post/Adding-advanced-validation-to-an-existing-ASPNET-application.aspx#comment</comments>
      <guid>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=622f187e-c55d-416c-aa72-63ece4847bf1</guid>
      <pubDate>Fri, 17 Oct 2008 04:19:00 -1400</pubDate>
      <category>asp.net</category>
      <dc:publisher>rmendez</dc:publisher>
      <pingback:server>http://www.aggiorno.com/blogs/aggiornings/pingback.axd</pingback:server>
      <pingback:target>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=622f187e-c55d-416c-aa72-63ece4847bf1</pingback:target>
      <slash:comments>185</slash:comments>
      <trackback:ping>http://www.aggiorno.com/blogs/aggiornings/trackback.axd?id=622f187e-c55d-416c-aa72-63ece4847bf1</trackback:ping>
      <wfw:comment>http://www.aggiorno.com/blogs/aggiornings/post/Adding-advanced-validation-to-an-existing-ASPNET-application.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aggiorno.com/blogs/aggiornings/syndication.axd?post=622f187e-c55d-416c-aa72-63ece4847bf1</wfw:commentRss>
    </item>
    <item>
      <title>Render your page differently for printing</title>
      <description>&lt;h2&gt;What are we facing?&lt;/h2&gt;

&lt;p&gt;I have a web page that needs a printer friendly version and I don’t want to change its markup.&lt;/p&gt;

&lt;h2&gt;&lt;/h2&gt;

&lt;h2&gt;The Solution&lt;/h2&gt;

&lt;p&gt;Fortunately the html &lt;em&gt;link&lt;/em&gt; tag allows to associate a style sheet depending on what device the document will be displayed on. Among the list of possible values that the media attribute can handle we will be focusing on the &lt;em&gt;print&lt;/em&gt; value which is going to help us link an printing specific style sheet to the web page. The following example illustrates how to use the &lt;em&gt;media&lt;/em&gt; attribute.&lt;/p&gt;

&lt;div style="border-right: 1px solid; border-top: 1px solid; border-left: 1px solid; border-bottom: 1px solid"&gt;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;printerfriendly.css&amp;quot; media=&amp;quot;print&amp;quot;/&amp;gt; &lt;/div&gt;

&lt;p&gt;Now that you have added the the link tag, you’ll notice that whatever style included in &lt;em&gt;printerfriendly.css&lt;/em&gt; style sheet file will not affect any tag in your page when you’re are viewing it in your web browser, but if you print it, or execute print preview (let’s not waste paper), you’ll see that the printer specific styles will do their job.&lt;/p&gt;

&lt;h2&gt;Some External References&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://meyerweb.com/eric/articles/webrev/200001.html"&gt;Print Different&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.w3schools.com/tags/tag_link.asp"&gt;Html Link Tag&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;div class="advertisement"&gt;[advertisement] Try &lt;a href="http://www.aggiorno.com/try.aspx?arodirguez-printing"&gt;Aggiorno&lt;/a&gt; for free, the assistant tool for web development you always wanted. &lt;/div&gt;</description>
      <link>http://www.aggiorno.com/blogs/aggiornings/post/Render-your-page-differently-for-printing.aspx</link>
      <author>name.nospam@nospam.example.com (Arnulfo Rodriguez)</author>
      <comments>http://www.aggiorno.com/blogs/aggiornings/post/Render-your-page-differently-for-printing.aspx#comment</comments>
      <guid>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=2015d6ca-cab7-4c03-bf89-69de5f485638</guid>
      <pubDate>Fri, 17 Oct 2008 02:00:00 -1400</pubDate>
      <category>hacks</category>
      <category>tips</category>
      <dc:publisher>Arnulfo Rodriguez</dc:publisher>
      <pingback:server>http://www.aggiorno.com/blogs/aggiornings/pingback.axd</pingback:server>
      <pingback:target>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=2015d6ca-cab7-4c03-bf89-69de5f485638</pingback:target>
      <slash:comments>89</slash:comments>
      <trackback:ping>http://www.aggiorno.com/blogs/aggiornings/trackback.axd?id=2015d6ca-cab7-4c03-bf89-69de5f485638</trackback:ping>
      <wfw:comment>http://www.aggiorno.com/blogs/aggiornings/post/Render-your-page-differently-for-printing.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aggiorno.com/blogs/aggiornings/syndication.axd?post=2015d6ca-cab7-4c03-bf89-69de5f485638</wfw:commentRss>
    </item>
    <item>
      <title>Showing interactive content in a Web slice</title>
      <description>&lt;h2&gt;What are we facing?&lt;/h2&gt;

&lt;p&gt;I am working with a web page that has a Web slice defined with the normal syntax.&amp;#160; I want to change the Web slice in order to show interactive web content.&lt;/p&gt;

&lt;h2&gt;The Solution&lt;/h2&gt;

&lt;p&gt;Web slices are a new useful feature shipped with IE8.&amp;#160; They allow users to subscribe to content directly within a web page.&amp;#160; Users can review content changes directly from the IE8 Favorites bar.&lt;/p&gt;

&lt;p&gt;Web slices are defined with simple, semantic HTML code that indicates a web page fragment which a client browser can be subscribed to.&amp;#160; The following fragment specifies a basic Web slice:&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: rgb(163,21,21); font-family: &amp;#39;Courier New&amp;#39;"&gt;div&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt; &lt;span style="color: red"&gt;class&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;hslice&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;id&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;offer&amp;quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;h2&lt;/span&gt; &lt;span style="color: red"&gt;class&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;entry-title&amp;quot;&amp;gt;&lt;/span&gt;Moon Airlines&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;h2&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;p&lt;/span&gt; &lt;span style="color: red"&gt;onmouseover&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;animateMe(this);&amp;quot;&amp;gt;&lt;/span&gt;Today’s offer &lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;span&lt;/span&gt; &lt;span style="color: red"&gt;class&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;entry-title&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="background: yellow; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;TodaysOfferPrice()&lt;span style="background: yellow; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;span&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;. 

    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;p&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 9pt; color: rgb(163,21,21); line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;div&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;gt;&lt;/span&gt; &lt;/p&gt;

&lt;p&gt;When IE8 is subscribed to this web slice you will see its title in the Favorites bar and in the preview window you will see the cached offer information, from which the active content such as script or ActiveX controls is removed.&amp;#160; In this case, the animation produced by the animateMe() function won’t show up in the preview window.&lt;/p&gt;

&lt;p&gt;In order to make this animation work the previous code needs to be changed to:&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: rgb(163,21,21); font-family: &amp;#39;Courier New&amp;#39;"&gt;div&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="color: red"&gt;class&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;hslice&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="color: red"&gt;id&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;offer&amp;quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;h2&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="color: red"&gt;class&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;entry-title&amp;quot;&amp;gt;&lt;/span&gt;&lt;font color="#000000"&gt;Moon Airlines&lt;/font&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;h2&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;a&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="color: red"&gt;rel&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;entry-content 
        &lt;br /&gt;&lt;/span&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;span style="color: red"&gt;href&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;myWebslicePreviewPage.aspx&amp;quot;&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="color: red"&gt;style&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;display:none;&amp;quot;&amp;gt; 
        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;a&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&lt;font color="#000000"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;p&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="color: red"&gt;onmouseover&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;animateMe(this);&amp;quot;&amp;gt;&lt;/span&gt;&lt;font color="#000000"&gt;Today’s offer &lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;span&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="color: red"&gt;class&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;entry-title&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="background: yellow; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"&gt;&lt;font color="#000000"&gt;&amp;lt;%&lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&lt;font color="#000000"&gt;TodaysOfferPrice()&lt;span style="background: yellow; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"&gt;%&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;span&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;font color="#000000"&gt;. 
        &lt;br /&gt;&lt;/font&gt;&lt;span style="color: blue"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163,21,21)"&gt;p&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt; 
        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 9pt; color: rgb(163,21,21); line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;div&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;

&lt;p&gt;It will also be necessary to extract a copy of the p block and place it in a new web page, which in this case is called myWebslicePreviewPage.aspx.&amp;#160;&amp;#160; Also the animateMe() and TodaysOfferPrice() functions and all its dependencies must be available in the new page.&lt;/p&gt;

&lt;h2&gt;Some external references&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc196992.aspx#_altdisplay"&gt;Subscribing to Content with Web Slices&lt;/a&gt;&lt;/p&gt;

&lt;div class="advertisement"&gt;[advertisement] Try &lt;a href="http://www.aggiorno.com/try.aspx?cmunoz-webslice-interactive"&gt;Aggiorno&lt;/a&gt; for free, the assistant tool for web development you always wanted. &lt;/div&gt;</description>
      <link>http://www.aggiorno.com/blogs/aggiornings/post/Showing-interactive-content-in-a-Web-slice.aspx</link>
      <author>name.nospam@nospam.example.com (César Muñoz)</author>
      <comments>http://www.aggiorno.com/blogs/aggiornings/post/Showing-interactive-content-in-a-Web-slice.aspx#comment</comments>
      <guid>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=ca5d380f-451e-4813-8327-dbafb38000ea</guid>
      <pubDate>Thu, 16 Oct 2008 12:56:00 -1400</pubDate>
      <category>asp.net</category>
      <category>ie</category>
      <dc:publisher>César Muñoz</dc:publisher>
      <pingback:server>http://www.aggiorno.com/blogs/aggiornings/pingback.axd</pingback:server>
      <pingback:target>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=ca5d380f-451e-4813-8327-dbafb38000ea</pingback:target>
      <slash:comments>123</slash:comments>
      <trackback:ping>http://www.aggiorno.com/blogs/aggiornings/trackback.axd?id=ca5d380f-451e-4813-8327-dbafb38000ea</trackback:ping>
      <wfw:comment>http://www.aggiorno.com/blogs/aggiornings/post/Showing-interactive-content-in-a-Web-slice.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aggiorno.com/blogs/aggiornings/syndication.axd?post=ca5d380f-451e-4813-8327-dbafb38000ea</wfw:commentRss>
    </item>
    <item>
      <title>Creating a Zebra Striped Table with jQuery</title>
      <description>&lt;h2&gt;What Are We Facing?&lt;/h2&gt;

&lt;p&gt;Commonly, web designers are faced with the task of presenting tabular data, a common practice to display lots of data is the use of different colors for alternate rows, this is used as an aid to improve the readability of the information presented. &lt;/p&gt;

&lt;p&gt;The most common way to use different colors in alternating rows is to use different CSS classes for the odd and even rows so we can apply a different style to each one. There are several ways to generate the classes in the rows, they can be generated when the table is created, usually by a server side script (ASP, PHP, JSP), or the classes can be set on client side, using javascript. &lt;/p&gt;

&lt;h2&gt;The Solution&lt;/h2&gt;

&lt;p&gt;Because we are trying to create a generic sample, we are going to focus on the client side generation of the CSS classes, and one of the best ways to achieve this is using jQuery. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;a href="http://jQuery.com/"&gt;jQuery&lt;/a&gt;&lt;/em&gt; is a very popular javascript library that provides us with many really useful functions and utilities that allow really neat effects in the client side code. &lt;/p&gt;

&lt;h3&gt;Including jQuery&lt;/h3&gt;

&lt;p&gt;To use the jQuery functions in our HTML document, we have to download the latest jQuery library from the &lt;a href="http://docs.jQuery.com/Downloading_jQuery"&gt;jQuery download page&lt;/a&gt; and include the library in the document with a &lt;em&gt;script&lt;/em&gt; tag like the following in the head of the page. &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: 10pt; color: blue; line-height: 115%; font-family: courier new"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; line-height: 115%; font-family: courier new"&gt;script&lt;/span&gt; &lt;span style="font-size: 10pt; line-height: 115%; font-family: courier new"&gt;&lt;span style="color: red"&gt;src&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;jQuery-1.2.6.min.js&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;type&lt;/span&gt; &lt;span style="color: blue"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;script&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;

&lt;p&gt;This tag adds a link to the jQuery library (version 1.2.6), and allows you to use jQuery functions in all the scripts of your page. &lt;/p&gt;

&lt;h3&gt;Creating the markup and styles&lt;/h3&gt;

&lt;p&gt;To create the &amp;quot;striped&amp;quot; table, we need to create a table with an &lt;em&gt;id&lt;/em&gt; to identify it and apply the style only to that table, in this example we'll name it &lt;em&gt;&amp;quot;stripedTable&amp;quot;&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: 10pt; color: blue; line-height: 115%; font-family: courier new"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #a31515; line-height: 115%; font-family: courier new"&gt;table&lt;/span&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: courier new"&gt; &lt;span style="color: red"&gt;id&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;stripedTable&amp;quot;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;

&lt;p&gt;After the table is defined, we need to create the styles that will apply to the table rows, thus we create a style for the even rows and another for the odd rows. In this code sample we'll also create an style for the table header &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;style&lt;/span&gt; &lt;span style="color: red"&gt;type&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;text/css&amp;quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #a31515"&gt;.oddRow&lt;/span&gt; {&lt;span style="color: red"&gt;background-color&lt;/span&gt;:&lt;span style="color: blue"&gt;#eeeeee&lt;/span&gt;;}&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #a31515"&gt;.evenRow&lt;/span&gt; {&lt;span style="color: red"&gt;background-color&lt;/span&gt;:&lt;span style="color: blue"&gt;#cccccc&lt;/span&gt;;}&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #a31515"&gt;th&lt;/span&gt; {&lt;span style="color: red"&gt;background-color&lt;/span&gt;:&lt;span style="color: blue"&gt;#666666&lt;/span&gt;;}&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;style&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;

&lt;h3&gt;Creating the jQuery code&lt;/h3&gt;

&lt;p&gt;Finally, we need to create the jQuery code that will add the CSS classes to the &lt;em&gt;tr&lt;/em&gt; tags, this is achieved with this code: &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;script&lt;/span&gt; &lt;span style="color: red"&gt;type&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $(document).ready(&lt;span style="color: blue"&gt;function&lt;/span&gt;() {&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $(&lt;span style="color: #a31515"&gt;&amp;quot;#stripedTable tr:odd&amp;quot;&lt;/span&gt;).addClass(&lt;span style="color: #a31515"&gt;&amp;quot;oddRow&amp;quot;&lt;/span&gt;);&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $(&lt;span style="color: #a31515"&gt;&amp;quot;#stripedTable tr:even&amp;quot;&lt;/span&gt;).addClass(&lt;span style="color: #a31515"&gt;&amp;quot;evenRow&amp;quot;&lt;/span&gt;);&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160; });&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 10pt; font-family: courier new"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;script&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;

&lt;p&gt;The first line of this code inside the script, registers a new function to be executed when the page has finished loading, the next line selects the odd &lt;em&gt;tr&lt;/em&gt; tags inside an element with the id &lt;em&gt;stripedTable&lt;/em&gt; and adds them the class &amp;quot;oddRow&amp;quot;, the last line does the same with the even lines, adding them the class &amp;quot;evenRow&amp;quot;. &lt;/p&gt;

&lt;p&gt;Given that the assigned class names are the classes that are defined in the CSS style block, the table will be rendered with that style, producing the following result: &lt;/p&gt;
&lt;img alt="Rendering sample of an zebra striped table" src="http://www.aggiorno.com/blogs/aggiornings/image.axd?picture=2008%2f10%2fstripedTable.jpg" /&gt; 

&lt;p&gt;As we can see, the table gets the styles in a really neat way, and we have improved the readability of the presented information easily. &lt;/p&gt;

&lt;h2&gt;Some external references&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.alistapart.com/articles/zebrastripingmoredataforthecase"&gt;ALA Zebra Striping Analysis.&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://jQuery.com/"&gt;jQuery Main Page.&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://15daysofjQuery.com/examples/zebra/"&gt;Zebra Striping Made Easy with jQuery.&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;div class="advertisement"&gt;[advertisement] Try &lt;a href="http://www.aggiorno.com/try.aspx?wvasquez-zebra"&gt;Aggiorno&lt;/a&gt; for free, the assistant tool for web development you always wanted. &lt;/div&gt;</description>
      <link>http://www.aggiorno.com/blogs/aggiornings/post/creating_zebra_striped_table_with_jquery.aspx</link>
      <author>name.nospam@nospam.example.com (willvv)</author>
      <comments>http://www.aggiorno.com/blogs/aggiornings/post/creating_zebra_striped_table_with_jquery.aspx#comment</comments>
      <guid>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=a163363d-7717-4bff-b15a-f4619f4dfb00</guid>
      <pubDate>Thu, 16 Oct 2008 09:26:00 -1400</pubDate>
      <category>accessibility</category>
      <category>css</category>
      <category>html</category>
      <category>jquery</category>
      <category>tips</category>
      <dc:publisher>willvv</dc:publisher>
      <pingback:server>http://www.aggiorno.com/blogs/aggiornings/pingback.axd</pingback:server>
      <pingback:target>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=a163363d-7717-4bff-b15a-f4619f4dfb00</pingback:target>
      <slash:comments>178</slash:comments>
      <trackback:ping>http://www.aggiorno.com/blogs/aggiornings/trackback.axd?id=a163363d-7717-4bff-b15a-f4619f4dfb00</trackback:ping>
      <wfw:comment>http://www.aggiorno.com/blogs/aggiornings/post/creating_zebra_striped_table_with_jquery.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aggiorno.com/blogs/aggiornings/syndication.axd?post=a163363d-7717-4bff-b15a-f4619f4dfb00</wfw:commentRss>
    </item>
    <item>
      <title>Overriding ASP.NET themes’ skin attributes</title>
      <description>&lt;h2&gt;What are we facing?&lt;/h2&gt;

&lt;p&gt;I am using ASP.NET Themes and someone defined a .skin file with default visual attributes for common controls in my website.&amp;#160; I need to change some attributes but need to preserve the default values for the rest of them.&lt;/p&gt;

&lt;h2&gt;The Solution&lt;/h2&gt;

&lt;p&gt;ASP.NET Themes are collections of appearance-related resources that will be applied to web controls on a website.&amp;#160;&amp;#160; Themes include images, control skins, CSS style sheets, and additional files (&lt;a href="http://msdn.microsoft.com/en-us/library/de93t31k(VS.80).aspx)"&gt;http://msdn.microsoft.com/en-us/library/de93t31k(VS.80).aspx)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Default attributes for ASP.NET web controls are specified in a .skin file including an entry with the same syntax as a normal web control, for example:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;BackColor&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Red&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ForeColor&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Blue&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;
&lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Then, the .skin file can be applied to an ASP.NET page by adding the Theme attribute to the corresponding Page directive, for example:&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; background: yellow; color: #444444; line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;@&lt;/span&gt;&lt;span style="font-size: 9pt; color: #444444; line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt; &lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;Page&lt;/span&gt;&lt;span style="font-size: 9pt; color: #444444; line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt; &lt;/span&gt;&lt;span style="font-size: 9pt; color: red; line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;Language&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;=&amp;quot;C#&amp;quot;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #444444; line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt; …&lt;/span&gt;&lt;span style="font-size: 9pt; color: red; line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt; Theme&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;=&amp;quot;MySkinFile&amp;quot;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #444444; line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt; … &lt;span style="background: yellow"&gt;%&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Now, the situation is that you need to override some of the default asp:Label attributes for a specific label control.&amp;#160; Let’s start with an example; the objective is to make the following label display with a yellow foreground color, given that the current skin file specifies that labels will be displayed with red background color and blue foreground:&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="background: white; line-height: 11.15pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 2"&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;asp&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;Label&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #444444; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;ID&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;=&amp;quot;Label1&amp;quot;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #444444; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;runat&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #444444; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;Text&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;=&amp;quot;Label&amp;quot;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #444444; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;This is the sample label text&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;&amp;lt;/&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;asp&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;Label&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 8.5pt; color: #444444; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;"&gt; &lt;/span&gt;&lt;/b&gt;

  &lt;p&gt;&lt;/p&gt;
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;This objective should be achieved by changing only the specific attribute in order to keep the code maintainable, and keep redundancy low.&amp;#160; However, this change is not as easy as it might be.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;One first attempt is to change the attribute in the control instance we are interested in:&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="background: white; line-height: 11.15pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 2"&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;asp&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;Label&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #444444; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;ID&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;=&amp;quot;Label1&amp;quot;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #444444; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;runat&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #444444; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;Text&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;=&amp;quot;Label&amp;quot; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;ForeColor&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;=&amp;quot;Yellow&amp;quot;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #444444; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;This is the sample label text&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;&amp;lt;/&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;asp&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;Label&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 8.5pt; color: #444444; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;"&gt; &lt;/span&gt;&lt;/b&gt;

  &lt;p&gt;&lt;/p&gt;
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately this doesn’t work; the entries in the skin file have precedence over the attributes in specific controls.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;The attribute &lt;b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: red; line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;EnableTheming&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;=&amp;quot;false&amp;quot;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;b&gt; &lt;/b&gt;can be used to allow the specific label control to apply different attribute values, however the rest of skin attributes, which we want to reuse, is not applied.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;The &lt;b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: red; line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;SkinID&lt;/span&gt;&lt;/b&gt; &lt;/b&gt;attribute can be used in the .skin file entry to make it specific to a control with the same id, this option does not allow us to reuse the attributes specified in the more “generic” asp:Label skin entry.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;The attributes specified in the .skin file entry will be processed by the ASP.NET server, rendering them as CSS attributes and including them in the style attribute of the applicable page elements, for example, our original asp:Label would be rendered as:&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&amp;lt;span id=&amp;quot;Label1&amp;quot; style=&amp;quot;color:Blue;background-color:Red;&amp;quot;&amp;gt;&lt;b&gt;This is the sample label text&lt;/b&gt; &amp;lt;/span&amp;gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;This gives us the final clue to achieve our objective.&amp;#160; A style attribute can be added to the asp:Label control in order to override the default attributes provided by the .skin file.&amp;#160; The source code would be:&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="background: white; line-height: 11.15pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 2"&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;asp&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;Label&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #444444; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;ID&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;=&amp;quot;Label1&amp;quot;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #444444; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;runat&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #444444; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;Text&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;=&amp;quot;Label&amp;quot; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: red; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;Style&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;=&amp;quot;color:yellow;&amp;quot;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #444444; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;This is the sample label text&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;&amp;lt;/&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;asp&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;Label&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us"&gt;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 8.5pt; color: #444444; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-ansi-language: en-us; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;"&gt; &lt;/span&gt;&lt;/b&gt;

  
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;This would be finally rendered as:&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&amp;lt;span id=&amp;quot;Label1&amp;quot; style=&amp;quot;color:Blue;background-color:Red;color:yellow;&amp;quot;&amp;gt;&lt;b&gt;This is the sample label text&lt;/b&gt;&amp;lt;/span&amp;gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Some external references&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://weblogs.asp.net/vimodi/articles/ThemesFaqs.aspx"&gt;Themes faqs&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.beansoftware.com/ASP.NET-Tutorials/Adding-Style-ASP.NET.aspx"&gt;Adding Some Style To ASP.NET 2.0 Pages&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;div class="advertisement"&gt;[advertisement] Try &lt;a href="http://www.aggiorno.com/try.aspx?cmunoz-themes-skin"&gt;Aggiorno&lt;/a&gt; for free, the assistant tool for web development you always wanted. &lt;/div&gt;</description>
      <link>http://www.aggiorno.com/blogs/aggiornings/post/Overriding-ASPNET-themese28099-skin-attributes.aspx</link>
      <author>name.nospam@nospam.example.com (César Muñoz)</author>
      <comments>http://www.aggiorno.com/blogs/aggiornings/post/Overriding-ASPNET-themese28099-skin-attributes.aspx#comment</comments>
      <guid>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=3289fdfe-39b8-4a4c-a10c-74fc0637a55f</guid>
      <pubDate>Thu, 16 Oct 2008 07:28:00 -1400</pubDate>
      <category>asp.net</category>
      <category>css</category>
      <dc:publisher>César Muñoz</dc:publisher>
      <pingback:server>http://www.aggiorno.com/blogs/aggiornings/pingback.axd</pingback:server>
      <pingback:target>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=3289fdfe-39b8-4a4c-a10c-74fc0637a55f</pingback:target>
      <slash:comments>182</slash:comments>
      <trackback:ping>http://www.aggiorno.com/blogs/aggiornings/trackback.axd?id=3289fdfe-39b8-4a4c-a10c-74fc0637a55f</trackback:ping>
      <wfw:comment>http://www.aggiorno.com/blogs/aggiornings/post/Overriding-ASPNET-themese28099-skin-attributes.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aggiorno.com/blogs/aggiornings/syndication.axd?post=3289fdfe-39b8-4a4c-a10c-74fc0637a55f</wfw:commentRss>
    </item>
    <item>
      <title>Creating a databound grid view control from a sample wireframe table</title>
      <description>&lt;h2&gt;&lt;b&gt;What are we facing?&lt;/b&gt;&lt;/h2&gt;

&lt;p&gt;I am an ASP.NET programmer and need to complete some web pages that I received from a web graphic designer.&amp;#160; I have to provide an implementation for a read-only table with specific visual characteristics and it must get its data from a database.&lt;/p&gt;

&lt;h2&gt;The Solution&lt;/h2&gt;

&lt;p&gt;One possible solution is to use an ASP.NET 2.0 GridView control.&amp;#160; You can reuse part of the code that the designer has already written. &lt;/p&gt;

&lt;p&gt;It will be necessary to perform the following tasks:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Add a GridView control to the web page. &lt;/li&gt;

  &lt;li&gt;Add a SQLDataSource control to the web page and assign it to the GridView. &lt;/li&gt;

  &lt;li&gt;Move the table’s style info into the GridView. &lt;/li&gt;

  &lt;li&gt;Remove the original table. &lt;/li&gt;

  &lt;li&gt;Complete the code to populate the GridView. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Steps 1 through 4 can be summarized with html-like pattern syntax in the following way:&lt;/p&gt;

&lt;p&gt;Original code:&lt;/p&gt;

&lt;p style="margin: 0in 0in 10pt"&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;#39;Courier New&amp;#39;"&gt;table&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt; &lt;span style="color: red"&gt;id&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;productList&amp;quot;&lt;/span&gt; &lt;span style="background: yellow"&gt;{&lt;span style="color: red"&gt;Table&lt;/span&gt; &lt;span style="color: red"&gt;tag&lt;/span&gt; &lt;span style="color: red"&gt;attributes&lt;/span&gt;}&lt;/span&gt; &lt;span style="color: red"&gt;style&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;&lt;span style="background: yellow"&gt;{Table style values}&lt;/span&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;tr&lt;/span&gt; &lt;span style="color: red"&gt;style&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;&lt;span style="background: yellow"&gt;{Row 1 style values}&lt;/span&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{Sample data 1}&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;tr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;tr&lt;/span&gt; &lt;span style="color: red"&gt;style&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;&lt;span style="background: yellow"&gt;{Row 2 style values}&lt;/span&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{Sample data 2}&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;tr&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;...&lt;/span&gt; 

  &lt;br /&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;table&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 115%"&gt;&lt;/span&gt; &lt;/p&gt;

&lt;p&gt;Final code: &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;#39;Courier New&amp;#39;"&gt;asp&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;:&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;#39;Courier New&amp;#39;"&gt;GridView&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt; &lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;productList&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;DataSourceID&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;SqlDataSource1&amp;quot;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="background: yellow"&gt;{&lt;span style="color: red"&gt;Conversion&lt;/span&gt; &lt;span style="color: red"&gt;of&lt;/span&gt; &lt;span style="color: red"&gt;Table&lt;/span&gt; &lt;span style="color: red"&gt;tag&lt;/span&gt; &lt;span style="color: red"&gt;attributes&lt;/span&gt;}&lt;/span&gt; &lt;span style="color: red"&gt;Style&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;&lt;span style="background: yellow"&gt;{Table style values}&lt;/span&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;RowStyle&lt;/span&gt; &lt;span style="background: yellow"&gt;{&lt;span style="color: red"&gt;Conversion&lt;/span&gt; &lt;span style="color: red"&gt;of&lt;/span&gt; &lt;span style="color: red"&gt;Row&lt;/span&gt; 1 &lt;span style="color: red"&gt;style&lt;/span&gt; &lt;span style="color: red"&gt;values&lt;/span&gt;}&lt;/span&gt; &lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;AlternatingRowStyle&lt;/span&gt; &lt;span style="background: yellow"&gt;{&lt;span style="color: red"&gt;Conversion&lt;/span&gt; &lt;span style="color: red"&gt;of&lt;/span&gt; &lt;span style="color: red"&gt;Row&lt;/span&gt; 2 &lt;span style="color: red"&gt;style&lt;/span&gt; &lt;span style="color: red"&gt;values&lt;/span&gt;}&lt;/span&gt; &lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt; 

  &lt;br /&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;#39;Courier New&amp;#39;"&gt;asp&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;:&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;#39;Courier New&amp;#39;"&gt;GridView&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;gt;&lt;/span&gt;&amp;#160;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;#39;Courier New&amp;#39;"&gt;asp&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;"&gt;:&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: &amp;#39;Courier New&amp;#39;"&gt;SqlDataSource&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt; &lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;SqlDataSource1&amp;quot;&lt;/span&gt; &lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red"&gt;DataSourceMode&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;DataReader&amp;quot;&lt;/span&gt;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 9pt; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red"&gt;ConnectionString&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;&lt;/span&gt;&lt;span style="background: yellow"&gt;&amp;lt;%&lt;/span&gt;$ ConnectionStrings:MyDatabase&lt;span style="background: yellow"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&amp;#160; &lt;br /&gt;&lt;span style="font-size: 9pt; line-height: 115%; font-family: &amp;#39;Courier New&amp;#39;"&gt;&lt;span&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red"&gt;SelectCommand&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;SELECT Column1, Column2,... FROM MyTable&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; line-height: 115%"&gt;&lt;/span&gt; &lt;/p&gt;

&lt;p&gt;In this sample, curly brackets indicate a collection of html attributes or elements, these collections are reused in the final code in their original form or converted to the corresponding AS.NET tag attributes.&lt;/p&gt;

&lt;h2&gt;Some external references&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/data/gridview.aspx"&gt;GridView quickstart tutorial&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://weblogs.asp.net/anasghanem/archive/2008/09/06/comparing-listview-with-gridview-datalist-and-repeater.aspx"&gt;Comparing ListView with GridView,DataList and Repeater&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;div class="advertisement"&gt;[advertisement] Try &lt;a href="http://www.aggiorno.com/try.aspx?cmunoz-databound-grid"&gt;Aggiorno&lt;/a&gt; for free, the assistant tool for web development you always wanted. &lt;/div&gt;</description>
      <link>http://www.aggiorno.com/blogs/aggiornings/post/Creating-a-databound-grid-view-control-from-a-sample-wireframe-table.aspx</link>
      <author>name.nospam@nospam.example.com (César Muñoz)</author>
      <comments>http://www.aggiorno.com/blogs/aggiornings/post/Creating-a-databound-grid-view-control-from-a-sample-wireframe-table.aspx#comment</comments>
      <guid>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=6a3df6d5-69a1-4ecf-b6cf-7458a5c87553</guid>
      <pubDate>Wed, 15 Oct 2008 04:40:00 -1400</pubDate>
      <category>asp.net</category>
      <category>html</category>
      <dc:publisher>César Muñoz</dc:publisher>
      <pingback:server>http://www.aggiorno.com/blogs/aggiornings/pingback.axd</pingback:server>
      <pingback:target>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=6a3df6d5-69a1-4ecf-b6cf-7458a5c87553</pingback:target>
      <slash:comments>133</slash:comments>
      <trackback:ping>http://www.aggiorno.com/blogs/aggiornings/trackback.axd?id=6a3df6d5-69a1-4ecf-b6cf-7458a5c87553</trackback:ping>
      <wfw:comment>http://www.aggiorno.com/blogs/aggiornings/post/Creating-a-databound-grid-view-control-from-a-sample-wireframe-table.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aggiorno.com/blogs/aggiornings/syndication.axd?post=6a3df6d5-69a1-4ecf-b6cf-7458a5c87553</wfw:commentRss>
    </item>
    <item>
      <title>Adding Round Corners to Web Page elements.</title>
      <description>&lt;h2&gt;What are we facing?&lt;/h2&gt;

&lt;p&gt;I want to use border but not with square corners, instead I prefer to place rounded corners to my boxes. &lt;/p&gt;

&lt;h2&gt;The Solution&lt;/h2&gt;

&lt;p&gt;Actually it's impossible to create any kind of rounded shapes just with &lt;abbr title="HyperText Markup Language"&gt;HTML&lt;/abbr&gt; and &lt;abbr title="Cascading Style Sheets"&gt;CSS&lt;/abbr&gt; code, that's why for this exercise we must need to use images to represent the corners of the boxes. &lt;/p&gt;

&lt;p&gt;A new question is: What's the better way to introduce those images with our boxes? A very maintainable way to do this is by using the power of &lt;abbr title="Cascading Style Sheets"&gt;CSS&lt;/abbr&gt;. &lt;/p&gt;

&lt;p&gt;We must create a normal text box with four corner images and with an image to repeatedly create the parallel lines of the box, as the following: &lt;/p&gt;

&lt;ul&gt;
  &lt;li style="list-style-type: decimal"&gt;Insert the four images as background with &lt;abbr title="Cascading Style Sheets"&gt;CSS&lt;/abbr&gt;. 

    &lt;p&gt;&lt;a href="http://www.aggiorno.com/blogs/aggiornings/image.axd?picture=2008%2f10%2frounded1.JPG"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="38" alt="Image with 4 backgrounds in the corners" src="http://www.aggiorno.com/blogs/aggiornings/image.axd?picture=2008%2f10%2frounded1.JPG" width="390" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;

    &lt;h4&gt;&lt;abbr title="HyperText Markup Language"&gt;HTML&lt;/abbr&gt; code.&lt;/h4&gt;
    &lt;code&gt;&lt;strong style="color: blue"&gt;&amp;lt;&lt;span style="color: maroon"&gt;div &lt;/span&gt;&lt;span style="color: red"&gt;class&lt;/span&gt;=&amp;quot;c3&amp;quot;&amp;gt;&lt;/strong&gt;&lt;strong style="color: blue"&gt;&amp;lt;&lt;span style="color: maroon"&gt;div &lt;/span&gt;&lt;span style="color: red"&gt;class &lt;/span&gt;=&amp;quot;c4&amp;quot;&amp;gt;&lt;/strong&gt;&lt;strong style="color: blue"&gt;&amp;lt;&lt;span style="color: maroon"&gt;div &lt;/span&gt;&lt;span style="color: red"&gt;class&lt;/span&gt;=&amp;quot;c1&amp;quot;&amp;gt;&lt;/strong&gt;&lt;strong style="color: blue"&gt;&amp;lt;&lt;span style="color: maroon"&gt;div &lt;/span&gt;&lt;span style="color: red"&gt;class&lt;/span&gt;=&amp;quot;c2&amp;quot;&amp;gt;&lt;/strong&gt; 

      &lt;br /&gt;&amp;#160;&amp;#160; l'arte di apprendimento 

      &lt;br /&gt;&lt;strong style="color: blue"&gt;&amp;lt;/&lt;span style="color: maroon"&gt;div&lt;/span&gt;&amp;gt;&lt;/strong&gt;&lt;strong style="color: blue"&gt;&amp;lt;/&lt;span style="color: maroon"&gt;div&lt;/span&gt;&amp;gt;&lt;/strong&gt;&lt;strong style="color: blue"&gt;&amp;lt;/&lt;span style="color: maroon"&gt;div&lt;/span&gt;&amp;gt;&lt;/strong&gt;&lt;strong style="color: blue"&gt;&amp;lt;/&lt;span style="color: maroon"&gt;div&lt;/span&gt;&amp;gt;&lt;/strong&gt;&lt;/code&gt; 

    &lt;h4&gt;&lt;abbr title="Cascading Style Sheets"&gt;CSS&lt;/abbr&gt; code.&lt;/h4&gt;
    &lt;code&gt;.c1 {background: url(c1.gif) 0 100% no-repeat} 
      &lt;br /&gt;.c2 {background: url(c2.gif) 100% 100% no-repeat} 

      &lt;br /&gt;.c3 {background: url(c3.gif) 0 0 no-repeat} 

      &lt;br /&gt;.c4 {background: url(c4 .gif) 100% 0 no-repeat; padding:10px} 

      &lt;br /&gt;&lt;/code&gt;&lt;/li&gt;

  &lt;li style="list-style-type: decimal"&gt;Add a border to the box (with more images). 
    &lt;p&gt;&lt;a href="http://www.aggiorno.com/blogs/aggiornings/image.axd?picture=2008%2f10%2frounded2.JPG"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="38" alt="Image with 4 backgrounds in the corners and borders in the sides" src="http://www.aggiorno.com/blogs/aggiornings/image.axd?picture=2008%2f10%2frounded2.JPG" width="390" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;

    &lt;h4&gt;&lt;abbr title="HyperText Markup Language"&gt;HTML&lt;/abbr&gt; code.&lt;/h4&gt;
    &lt;code&gt;&lt;strong style="color: blue"&gt;&amp;lt;&lt;span style="color: maroon"&gt;div &lt;/span&gt;&lt;span style="color: red"&gt;class&lt;/span&gt;=&amp;quot;l1&amp;quot;&amp;gt;&lt;code&gt;&lt;strong style="color: blue"&gt;&amp;lt;&lt;span style="color: maroon"&gt;div &lt;/span&gt;&lt;span style="color: red"&gt;class&lt;/span&gt;=&amp;quot;l2&amp;quot;&amp;gt;&lt;code&gt;&lt;strong style="color: blue"&gt;&amp;lt;&lt;span style="color: maroon"&gt;div &lt;/span&gt;&lt;span style="color: red"&gt;class&lt;/span&gt;=&amp;quot;l3&amp;quot;&amp;gt;&lt;code&gt;&lt;strong style="color: blue"&gt;&amp;lt;&lt;span style="color: maroon"&gt;div &lt;/span&gt;&lt;span style="color: red"&gt;class&lt;/span&gt;=&amp;quot;l4&amp;quot;&amp;gt;&lt;/strong&gt;&lt;/code&gt;&lt;/strong&gt;&lt;/code&gt;&lt;/strong&gt;&lt;/code&gt;&lt;/strong&gt;&lt;/code&gt;&lt;code&gt;&lt;strong style="color: blue"&gt;&amp;lt;&lt;span style="color: maroon"&gt;div &lt;/span&gt;&lt;span style="color: red"&gt;class&lt;/span&gt;=&amp;quot;c3&amp;quot;&amp;gt;&lt;/strong&gt;&lt;strong style="color: blue"&gt;&amp;lt;&lt;span style="color: maroon"&gt;div &lt;/span&gt;&lt;span style="color: red"&gt;class &lt;/span&gt;=&amp;quot;c4&amp;quot;&amp;gt;&lt;/strong&gt;&lt;strong style="color: blue"&gt;&amp;lt;&lt;span style="color: maroon"&gt;div &lt;/span&gt;&lt;span style="color: red"&gt;class&lt;/span&gt;=&amp;quot;c1&amp;quot;&amp;gt;&lt;/strong&gt;&lt;strong style="color: blue"&gt;&amp;lt;&lt;span style="color: maroon"&gt;div &lt;/span&gt;&lt;span style="color: red"&gt;class&lt;/span&gt;=&amp;quot;c2&amp;quot;&amp;gt;&lt;/strong&gt; 

      &lt;br /&gt;&amp;#160;&amp;#160; l'arte di apprendimento 

      &lt;br /&gt;&lt;strong style="color: blue"&gt;&amp;lt;/&lt;span style="color: maroon"&gt;div&lt;/span&gt;&amp;gt;&lt;/strong&gt;&lt;strong style="color: blue"&gt;&amp;lt;/&lt;span style="color: maroon"&gt;div&lt;/span&gt;&amp;gt;&lt;/strong&gt;&lt;strong style="color: blue"&gt;&amp;lt;/&lt;span style="color: maroon"&gt;div&lt;/span&gt;&amp;gt;&lt;/strong&gt;&lt;strong style="color: blue"&gt;&amp;lt;/&lt;span style="color: maroon"&gt;div&lt;/span&gt;&amp;gt;&lt;strong style="color: blue"&gt;&amp;lt;/&lt;span style="color: maroon"&gt;div&lt;/span&gt;&amp;gt;&lt;/strong&gt;&lt;strong style="color: blue"&gt;&amp;lt;/&lt;span style="color: maroon"&gt;div&lt;/span&gt;&amp;gt;&lt;/strong&gt;&lt;strong style="color: blue"&gt;&amp;lt;/&lt;span style="color: maroon"&gt;div&lt;/span&gt;&amp;gt;&lt;/strong&gt;&lt;strong style="color: blue"&gt;&amp;lt;/&lt;span style="color: maroon"&gt;div&lt;/span&gt;&amp;gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/code&gt; 

    &lt;h4&gt;&lt;abbr title="Cascading Style Sheets"&gt;CSS&lt;/abbr&gt; code.&lt;/h4&gt;
    &lt;code&gt;.l1 {background: url(dot.gif) repeat-x 0px 0px} 
      &lt;br /&gt;.l2 {background: url(dot.gif) repeat-x 0px 100%} 

      &lt;br /&gt;.l3 {background: url(dot.gif) repeat-y 0px 0px} 

      &lt;br /&gt;.l4 {background: url(dot.gif) repeat-y 100% 0px} 

      &lt;br /&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Some external references&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.webcredible.co.uk/user-friendly-resources/css/css-round-corners-borders.shtml"&gt;CSS and round corners: Borders with curves.&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;div class="advertisement"&gt;[advertisement] Try &lt;a href="http://www.aggiorno.com/try.aspx?dalvarez-round-corners-css"&gt;Aggiorno&lt;/a&gt; for free, the assistant tool for web development you always wanted. &lt;/div&gt;</description>
      <link>http://www.aggiorno.com/blogs/aggiornings/post/Adding-Round-Corners-to-Web-Page-elements.aspx</link>
      <author>name.nospam@nospam.example.com (Daniel Álvarez)</author>
      <comments>http://www.aggiorno.com/blogs/aggiornings/post/Adding-Round-Corners-to-Web-Page-elements.aspx#comment</comments>
      <guid>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=c396b2ee-f898-4e92-a39d-16427902343a</guid>
      <pubDate>Wed, 15 Oct 2008 03:54:00 -1400</pubDate>
      <category>css</category>
      <category>html</category>
      <category>tips</category>
      <dc:publisher>Daniel Álvarez</dc:publisher>
      <pingback:server>http://www.aggiorno.com/blogs/aggiornings/pingback.axd</pingback:server>
      <pingback:target>http://www.aggiorno.com/blogs/aggiornings/post.aspx?id=c396b2ee-f898-4e92-a39d-16427902343a</pingback:target>
      <slash:comments>120</slash:comments>
      <trackback:ping>http://www.aggiorno.com/blogs/aggiornings/trackback.axd?id=c396b2ee-f898-4e92-a39d-16427902343a</trackback:ping>
      <wfw:comment>http://www.aggiorno.com/blogs/aggiornings/post/Adding-Round-Corners-to-Web-Page-elements.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.aggiorno.com/blogs/aggiornings/syndication.axd?post=c396b2ee-f898-4e92-a39d-16427902343a</wfw:commentRss>
    </item>
  </channel>
</rss>
