﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 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#">
  <channel>
    <title>Beanie</title>
    <description>Life, the universe, everything, but mainly Bike racing, diving, photography and software development</description>
    <link>http://blog.outlawdivers.org.uk/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.4.5.0</generator>
    <language>en-GB</language>
    <blogChannel:blogRoll>http://blog.outlawdivers.org.uk/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Beanie</dc:creator>
    <dc:title>Beanie</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <item>
      <title>Filter Account contacts in CRM 4.0</title>
      <description>&lt;pre class="csharpcode"&gt;
How to filter the list of contacts for primary contact for an account in Dynamics CRM 4.0 
&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;
First add Parent Customer to the Contact lookup view.
&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;
Then add the following code to the Form Load event: 
&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;if&lt;/span&gt; ( crmForm.ObjectId != &lt;span class="kwrd"&gt;null&lt;/span&gt;)
{
var name = crmForm.all.name.DataValue;
crmForm.all.primarycontactid.additionalparams =  &lt;span class="str"&gt;&amp;#39;search=&amp;#39;&lt;/span&gt; + name;
}
&lt;/pre&gt;
</description>
      <link>http://blog.outlawdivers.org.uk/post/2010/11/22/Filter-Account-contacts-in-CRM-40.aspx</link>
      <author>rb.nospam@nospam.outlawdivers.org.uk (Beanie)</author>
      <comments>http://blog.outlawdivers.org.uk/post/2010/11/22/Filter-Account-contacts-in-CRM-40.aspx#comment</comments>
      <guid>http://blog.outlawdivers.org.uk/post.aspx?id=2b49c7b0-1a31-4acf-a43a-56c8d5c403b0</guid>
      <pubDate>Mon, 22 Nov 2010 15:55:00 +0000</pubDate>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <category>Dynamics CRM</category>
      <dc:publisher>Beanie</dc:publisher>
      <pingback:server>http://blog.outlawdivers.org.uk/pingback.axd</pingback:server>
      <pingback:target>http://blog.outlawdivers.org.uk/post.aspx?id=2b49c7b0-1a31-4acf-a43a-56c8d5c403b0</pingback:target>
      <slash:comments>7</slash:comments>
      <trackback:ping>http://blog.outlawdivers.org.uk/trackback.axd?id=2b49c7b0-1a31-4acf-a43a-56c8d5c403b0</trackback:ping>
      <wfw:comment>http://blog.outlawdivers.org.uk/post/2010/11/22/Filter-Account-contacts-in-CRM-40.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.outlawdivers.org.uk/syndication.axd?post=2b49c7b0-1a31-4acf-a43a-56c8d5c403b0</wfw:commentRss>
    </item>
    <item>
      <title>Dynamics CRM 4.0 Filter products by price list</title>
      <description>&lt;pre class="csharpcode"&gt;
How to filter the products on the Order Product form by the price list selected on the parent Order form
&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;
Add the following code the the form load function: 
&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;if&lt;/span&gt; ((window.opener != &lt;span class="kwrd"&gt;null&lt;/span&gt;) &amp;amp;&amp;amp; (window.opener.parent != &lt;span class="kwrd"&gt;null&lt;/span&gt;) &amp;amp;&amp;amp; (window.opener.parent.document != &lt;span class="kwrd"&gt;null&lt;/span&gt;) &amp;amp;&amp;amp; (window.opener.parent.document.crmForm != &lt;span class="kwrd"&gt;null&lt;/span&gt;)) 
{
var parentForm = window.opener.parent.document.crmForm;
var lookupItem = &lt;span class="kwrd"&gt;new&lt;/span&gt; Array;
lookupItem = parentForm.all.pricelevelid.DataValue;
var pricelevelid = parentForm.all.pricelevelid.DataValue;
crmForm.all.productid.additionalparams =  &lt;span class="str"&gt;&amp;#39;search=&amp;#39;&lt;/span&gt; + lookupItem[0].name;    
}
&lt;/pre&gt;
</description>
      <link>http://blog.outlawdivers.org.uk/post/2010/11/22/Dynamics-CRM-40-Filter-products-by-price-list.aspx</link>
      <author>rb.nospam@nospam.outlawdivers.org.uk (Beanie)</author>
      <comments>http://blog.outlawdivers.org.uk/post/2010/11/22/Dynamics-CRM-40-Filter-products-by-price-list.aspx#comment</comments>
      <guid>http://blog.outlawdivers.org.uk/post.aspx?id=c451e8c2-a7e9-4d07-9487-61325ddcc132</guid>
      <pubDate>Mon, 22 Nov 2010 15:30:00 +0000</pubDate>
      <category>Dynamics CRM</category>
      <dc:publisher>Beanie</dc:publisher>
      <pingback:server>http://blog.outlawdivers.org.uk/pingback.axd</pingback:server>
      <pingback:target>http://blog.outlawdivers.org.uk/post.aspx?id=c451e8c2-a7e9-4d07-9487-61325ddcc132</pingback:target>
      <slash:comments>17</slash:comments>
      <trackback:ping>http://blog.outlawdivers.org.uk/trackback.axd?id=c451e8c2-a7e9-4d07-9487-61325ddcc132</trackback:ping>
      <wfw:comment>http://blog.outlawdivers.org.uk/post/2010/11/22/Dynamics-CRM-40-Filter-products-by-price-list.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.outlawdivers.org.uk/syndication.axd?post=c451e8c2-a7e9-4d07-9487-61325ddcc132</wfw:commentRss>
    </item>
    <item>
      <title>eBay Madness</title>
      <description>&lt;p&gt;
I&amp;#39;ve gone a little mad with eBay listings..
&lt;/p&gt;
&lt;p&gt;
After having a tidy up in the garage I have found a load of dive kit that I don&amp;#39;t use so i listed it all on &lt;a rel="external" href="http://myworld.ebay.co.uk/beandiving"&gt;eBay&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
There&amp;#39;s fins, torchs, gauges, regs and more...
See &lt;a rel="external" href="http://myworld.ebay.co.uk/beandiving"&gt;my eBay&lt;/a&gt; for all of it and more coming as I discover it.
&lt;/p&gt;
</description>
      <link>http://blog.outlawdivers.org.uk/post/2010/07/27/eBay-Madness.aspx</link>
      <author>rb.nospam@nospam.outlawdivers.org.uk (Beanie)</author>
      <comments>http://blog.outlawdivers.org.uk/post/2010/07/27/eBay-Madness.aspx#comment</comments>
      <guid>http://blog.outlawdivers.org.uk/post.aspx?id=f6a7fd5b-7f6f-4261-ab65-4cfcbede0261</guid>
      <pubDate>Tue, 27 Jul 2010 11:46:00 +0000</pubDate>
      <category>Diving</category>
      <dc:publisher>Beanie</dc:publisher>
      <pingback:server>http://blog.outlawdivers.org.uk/pingback.axd</pingback:server>
      <pingback:target>http://blog.outlawdivers.org.uk/post.aspx?id=f6a7fd5b-7f6f-4261-ab65-4cfcbede0261</pingback:target>
      <slash:comments>11</slash:comments>
      <trackback:ping>http://blog.outlawdivers.org.uk/trackback.axd?id=f6a7fd5b-7f6f-4261-ab65-4cfcbede0261</trackback:ping>
      <wfw:comment>http://blog.outlawdivers.org.uk/post/2010/07/27/eBay-Madness.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.outlawdivers.org.uk/syndication.axd?post=f6a7fd5b-7f6f-4261-ab65-4cfcbede0261</wfw:commentRss>
    </item>
    <item>
      <title>asp email using CDO</title>
      <description>&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Set oMail=CreateObject(&amp;quot;CDO.Message&amp;quot;)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oMail.Subject=&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oMail.From=&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oMail.To=&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oMail.HtmlBody=strBody&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oMail.Send&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;set oMail=nothing
</description>
      <link>http://blog.outlawdivers.org.uk/post/2010/07/21/asp-email-using-CDO.aspx</link>
      <author>rb.nospam@nospam.outlawdivers.org.uk (Beanie)</author>
      <comments>http://blog.outlawdivers.org.uk/post/2010/07/21/asp-email-using-CDO.aspx#comment</comments>
      <guid>http://blog.outlawdivers.org.uk/post.aspx?id=2d3f3599-a449-4f1b-b25e-0e1c6d6edbd5</guid>
      <pubDate>Wed, 21 Jul 2010 15:02:00 +0000</pubDate>
      <category>ASP</category>
      <dc:publisher>Beanie</dc:publisher>
      <pingback:server>http://blog.outlawdivers.org.uk/pingback.axd</pingback:server>
      <pingback:target>http://blog.outlawdivers.org.uk/post.aspx?id=2d3f3599-a449-4f1b-b25e-0e1c6d6edbd5</pingback:target>
      <slash:comments>10</slash:comments>
      <trackback:ping>http://blog.outlawdivers.org.uk/trackback.axd?id=2d3f3599-a449-4f1b-b25e-0e1c6d6edbd5</trackback:ping>
      <wfw:comment>http://blog.outlawdivers.org.uk/post/2010/07/21/asp-email-using-CDO.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.outlawdivers.org.uk/syndication.axd?post=2d3f3599-a449-4f1b-b25e-0e1c6d6edbd5</wfw:commentRss>
    </item>
    <item>
      <title>Create RSS feed</title>
      <description>&lt;p&gt;For a while I had wanted to add RSS feed for my news sections of my websites, thinking that it had to be relativly straight forward, given it&amp;#39;s only XML, I went looking for a simple way to impliment it.&lt;/p&gt;&lt;p&gt;This is how I ened up creating my RSS feeds.&lt;/p&gt;&lt;p&gt;The most important bit is this line in the head section of the page:  &lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;link&lt;/span&gt; &lt;span class="attr"&gt;rel&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;alternate&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;/feed/&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;website RSS Feed&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;application/rss+xml&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;This tells the browser where the feed is and displays the RSS icon in the address bar of Firefox etc.&lt;/p&gt;&lt;p&gt;The we need to conect to a data source, this is in the web.config file:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;connectionStrings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;ConnectionString&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;connectionString&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Data Source=server;Initial Catalog=database;User ID=user;Password=password&amp;quot;&lt;/span&gt;&lt;span class="attr"&gt;providerName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Data.SqlClient&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;connectionStrings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Finally we are ready to create the XML document that will become the RSS feed, using the XmlTextWriter.&lt;/p&gt;&lt;div class="csharpcode"&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Xml;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Linq;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI.WebControls;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Data.SqlClient;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Configuration;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Data;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; feed_default : System.Web.UI.Page&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;{&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;    &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;    {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        &lt;span class="rem"&gt;// Clear any previous output from the buffer&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        Response.Clear();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;        Response.ContentType = &lt;span class="str"&gt;&amp;quot;text/xml&amp;quot;&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;        XmlTextWriter feedWriter = &lt;span class="kwrd"&gt;new&lt;/span&gt; XmlTextWriter(Response.OutputStream, Encoding.UTF8);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;        feedWriter.WriteStartDocument();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;        &lt;span class="rem"&gt;// These are RSS Tags&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;        feedWriter.WriteStartElement(&lt;span class="str"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;        feedWriter.WriteAttributeString(&lt;span class="str"&gt;&amp;quot;version&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;2.0&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;        feedWriter.WriteStartElement(&lt;span class="str"&gt;&amp;quot;channel&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;        feedWriter.WriteElementString(&lt;span class="str"&gt;&amp;quot;title&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;website&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;        feedWriter.WriteElementString(&lt;span class="str"&gt;&amp;quot;link&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;http://www.website.com&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;        feedWriter.WriteElementString(&lt;span class="str"&gt;&amp;quot;description&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;website News Feed&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;        feedWriter.WriteElementString(&lt;span class="str"&gt;&amp;quot;copyright&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Copyright 2010 website. All rights reserved.&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;        &lt;span class="rem"&gt;// Get list of for RSS        &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;        SqlConnection conn = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;        conn = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlConnection(ConfigurationManager.ConnectionStrings[&lt;span class="str"&gt;&amp;quot;ConnectionString&amp;quot;&lt;/span&gt;].ConnectionString);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;        SqlDataReader rdr = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;        conn.Open();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;        SqlCommand cmd = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCommand(&lt;span class="str"&gt;&amp;quot;selectRssItems&amp;quot;&lt;/span&gt;, conn);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;        cmd.CommandType = CommandType.StoredProcedure;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;        &lt;span class="rem"&gt;// optional search paramters (remove if not required)&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;        cmd.Parameters.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; SqlParameter(&lt;span class="str"&gt;&amp;quot;@Parameter&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Search&amp;quot;&lt;/span&gt;));&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;        rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;        &lt;span class="rem"&gt;// Write all Posts in the rss feed&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;        &lt;span class="kwrd"&gt;while&lt;/span&gt; (rdr.Read())&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;        {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;            feedWriter.WriteStartElement(&lt;span class="str"&gt;&amp;quot;item&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;            feedWriter.WriteElementString(&lt;span class="str"&gt;&amp;quot;title&amp;quot;&lt;/span&gt;, rdr[&lt;span class="str"&gt;&amp;quot;title&amp;quot;&lt;/span&gt;].ToString());&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt;            feedWriter.WriteElementString(&lt;span class="str"&gt;&amp;quot;description&amp;quot;&lt;/span&gt;, rdr[&lt;span class="str"&gt;&amp;quot;description&amp;quot;&lt;/span&gt;].ToString());&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt;            feedWriter.WriteElementString(&lt;span class="str"&gt;&amp;quot;link&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;http://www.website.com/news.asp?news=&amp;quot;&lt;/span&gt; + rdr[&lt;span class="str"&gt;&amp;quot;linkID&amp;quot;&lt;/span&gt;].ToString());&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  49:  &lt;/span&gt;            feedWriter.WriteElementString(&lt;span class="str"&gt;&amp;quot;pubDate&amp;quot;&lt;/span&gt;, rdr[&lt;span class="str"&gt;&amp;quot;Date&amp;quot;&lt;/span&gt;].ToString());&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  50:  &lt;/span&gt;            feedWriter.WriteEndElement();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  51:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  52:  &lt;/span&gt;        }         &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  53:  &lt;/span&gt;        &lt;span class="rem"&gt;// Close all open tags tags&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  54:  &lt;/span&gt;        feedWriter.WriteEndElement();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  55:  &lt;/span&gt;        feedWriter.WriteEndElement();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  56:  &lt;/span&gt;        feedWriter.WriteEndDocument();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  57:  &lt;/span&gt;        feedWriter.Flush();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  58:  &lt;/span&gt;        feedWriter.Close();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  59:  &lt;/span&gt;        Response.End();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  60:  &lt;/span&gt;    }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  61:  &lt;/span&gt;}&lt;/pre&gt;&lt;/div&gt;</description>
      <link>http://blog.outlawdivers.org.uk/post/2010/04/14/Create-RSS-feed.aspx</link>
      <author>rb.nospam@nospam.outlawdivers.org.uk (Beanie)</author>
      <comments>http://blog.outlawdivers.org.uk/post/2010/04/14/Create-RSS-feed.aspx#comment</comments>
      <guid>http://blog.outlawdivers.org.uk/post.aspx?id=0b8591d0-a552-4fed-bc3e-14c602bf1c92</guid>
      <pubDate>Wed, 14 Apr 2010 11:51:00 +0000</pubDate>
      <category>ASP</category>
      <dc:publisher>Beanie</dc:publisher>
      <pingback:server>http://blog.outlawdivers.org.uk/pingback.axd</pingback:server>
      <pingback:target>http://blog.outlawdivers.org.uk/post.aspx?id=0b8591d0-a552-4fed-bc3e-14c602bf1c92</pingback:target>
      <slash:comments>12</slash:comments>
      <trackback:ping>http://blog.outlawdivers.org.uk/trackback.axd?id=0b8591d0-a552-4fed-bc3e-14c602bf1c92</trackback:ping>
      <wfw:comment>http://blog.outlawdivers.org.uk/post/2010/04/14/Create-RSS-feed.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.outlawdivers.org.uk/syndication.axd?post=0b8591d0-a552-4fed-bc3e-14c602bf1c92</wfw:commentRss>
    </item>
    <item>
      <title>Split recordset list into columns</title>
      <description>&lt;p&gt;
I needed to display a list, countries in this case, over two columns. It is relatively simple using record set paging, in its simplest form you count the total rows divide by the number of columns you want then set the page size to the result of that calculation. Then instead of button to scroll through the record set we have a repeater for each page &amp;ndash; simples ;-). 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;ASPX&lt;/strong&gt;
&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;CountryList1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;float:left; width:40%&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Repeater&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;rptCountryList1&amp;quot;&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="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;li&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   5:  &lt;/span&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt; &lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Description.aspx?country=&amp;lt;%# DataBinder.Eval(Container.DataItem, &amp;quot;&lt;/span&gt;&lt;span class="attr"&gt;fldCountryID&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;quot;) %&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   6:  &lt;/span&gt;                    &lt;span class="asp"&gt;&amp;lt;%&lt;/span&gt;# DataBinder.Eval(Container.DataItem, &lt;span class="str"&gt;&amp;quot;fldCountry&amp;quot;&lt;/span&gt;) &lt;span class="asp"&gt;%&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   7:  &lt;/span&gt;                &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   8:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;li&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Repeater&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&amp;nbsp;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;CountryList2&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;float:left; width:40%&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Repeater&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;rptCountryList2&amp;quot;&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="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;li&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  17:  &lt;/span&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt; &lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Description.aspx?country=&amp;lt;%# DataBinder.Eval(Container.DataItem, &amp;quot;&lt;/span&gt;&lt;span class="attr"&gt;fldCountryID&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;quot;) %&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  18:  &lt;/span&gt;                    &lt;span class="asp"&gt;&amp;lt;%&lt;/span&gt;# DataBinder.Eval(Container.DataItem, &lt;span class="str"&gt;&amp;quot;fldCountry&amp;quot;&lt;/span&gt;) &lt;span class="asp"&gt;%&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  19:  &lt;/span&gt;                &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;li&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  21:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  22:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Repeater&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  23:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;div&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Code behind&lt;/strong&gt;
&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.Security;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI.WebControls;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI.WebControls.WebParts;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI.HtmlControls;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Data.SqlClient;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Data;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Configuration;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&amp;nbsp;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; page_name : System.Web.UI.Page
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  13:  &lt;/span&gt;{
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    SqlConnection scon=&lt;span class="kwrd"&gt;new&lt;/span&gt;  SqlConnection(ConfigurationManager.AppSettings[&lt;span class="str"&gt;&amp;quot;strConn&amp;quot;&lt;/span&gt;]);
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  15:  &lt;/span&gt;    SqlDataAdapter sDA;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  16:  &lt;/span&gt;    DataSet dsCountryList1;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  17:  &lt;/span&gt;    DataSet dsCountryList2;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&amp;nbsp;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  19:  &lt;/span&gt;    &lt;span class="kwrd"&gt;const&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; intPages = 2;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  20:  &lt;/span&gt;    &lt;span class="kwrd"&gt;int&lt;/span&gt; intRows;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  21:  &lt;/span&gt;    &lt;span class="kwrd"&gt;int&lt;/span&gt; rowSum;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  22:  &lt;/span&gt;&amp;nbsp;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  23:  &lt;/span&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; BindData()
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  24:  &lt;/span&gt;    {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  25:  &lt;/span&gt;        rptCountryList1.DataSource = dsCountryList1;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  26:  &lt;/span&gt;        rptCountryList1.DataBind();
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  27:  &lt;/span&gt;        rptCountryList2.DataSource = dsCountryList2;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  28:  &lt;/span&gt;        rptCountryList2.DataBind();
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  29:  &lt;/span&gt;    }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  30:  &lt;/span&gt;&amp;nbsp;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  31:  &lt;/span&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; readpage(&lt;span class="kwrd"&gt;int&lt;/span&gt; n)
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  32:  &lt;/span&gt;    {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  33:  &lt;/span&gt;        SqlCommand cmd = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCommand(&lt;span class="str"&gt;&amp;quot;SelectCountriesByLetter&amp;quot;&lt;/span&gt;, scon);
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  34:  &lt;/span&gt;        cmd.CommandType = CommandType.StoredProcedure;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  35:  &lt;/span&gt;        cmd.Parameters.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; SqlParameter(&lt;span class="str"&gt;&amp;quot;@Product&amp;quot;&lt;/span&gt;, 10));
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  36:  &lt;/span&gt;        cmd.Parameters.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; SqlParameter(&lt;span class="str"&gt;&amp;quot;@Letter&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;%&amp;quot;&lt;/span&gt;));
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  37:  &lt;/span&gt;        sDA = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlDataAdapter(cmd);
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  38:  &lt;/span&gt;        dsCountryList1 = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataSet();
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  39:  &lt;/span&gt;        dsCountryList1.Clear();
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  40:  &lt;/span&gt;        sDA.Fill(dsCountryList1, 0, intRows, &lt;span class="str"&gt;&amp;quot;tblCountry&amp;quot;&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  41:  &lt;/span&gt;        dsCountryList2 = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataSet();
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  42:  &lt;/span&gt;        dsCountryList2.Clear();
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  43:  &lt;/span&gt;        sDA.Fill(dsCountryList2,  intRows, intRows, &lt;span class="str"&gt;&amp;quot;tblCountry&amp;quot;&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  44:  &lt;/span&gt;    }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  45:  &lt;/span&gt;&amp;nbsp;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  46:  &lt;/span&gt;    &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  47:  &lt;/span&gt;    {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  48:  &lt;/span&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (!Page.IsPostBack)
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  49:  &lt;/span&gt;        {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  50:  &lt;/span&gt;            SqlCommand cmd = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCommand(&lt;span class="str"&gt;&amp;quot;SelectCountriesByLetter&amp;quot;&lt;/span&gt;, scon);
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  51:  &lt;/span&gt;            cmd.CommandType = CommandType.StoredProcedure;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  52:  &lt;/span&gt;            cmd.Parameters.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; SqlParameter(&lt;span class="str"&gt;&amp;quot;@Product&amp;quot;&lt;/span&gt;, 10));
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  53:  &lt;/span&gt;            cmd.Parameters.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; SqlParameter(&lt;span class="str"&gt;&amp;quot;@Letter&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;%&amp;quot;&lt;/span&gt;));
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  54:  &lt;/span&gt;            sDA = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlDataAdapter(cmd); 
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  55:  &lt;/span&gt;            dsCountryList1 = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataSet();
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  56:  &lt;/span&gt;            &lt;span class="kwrd"&gt;try&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  57:  &lt;/span&gt;            {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  58:  &lt;/span&gt;                sDA.Fill(dsCountryList1, &lt;span class="str"&gt;&amp;quot;tblCountry&amp;quot;&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  59:  &lt;/span&gt;                rowSum = dsCountryList1.Tables[0].Rows.Count;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  60:  &lt;/span&gt;            }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  61:  &lt;/span&gt;            &lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception ex)
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  62:  &lt;/span&gt;            {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  63:  &lt;/span&gt;                rowSum = 0;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  64:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  65:  &lt;/span&gt;            }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  66:  &lt;/span&gt;            intRows = rowSum / intPages;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  67:  &lt;/span&gt;            readpage(1);
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  68:  &lt;/span&gt;            BindData();     
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  69:  &lt;/span&gt;        }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  70:  &lt;/span&gt;    }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  71:  &lt;/span&gt;} 
&lt;/pre&gt;
&lt;/div&gt;
</description>
      <link>http://blog.outlawdivers.org.uk/post/2009/12/08/Split-recordset-list-into-columns.aspx</link>
      <author>rb.nospam@nospam.outlawdivers.org.uk (Beanie)</author>
      <comments>http://blog.outlawdivers.org.uk/post/2009/12/08/Split-recordset-list-into-columns.aspx#comment</comments>
      <guid>http://blog.outlawdivers.org.uk/post.aspx?id=f8d31ec2-cfa2-4f27-908a-3007b902e8a2</guid>
      <pubDate>Tue, 08 Dec 2009 08:47:00 +0000</pubDate>
      <category>Development</category>
      <category>ASP</category>
      <dc:publisher>Beanie</dc:publisher>
      <pingback:server>http://blog.outlawdivers.org.uk/pingback.axd</pingback:server>
      <pingback:target>http://blog.outlawdivers.org.uk/post.aspx?id=f8d31ec2-cfa2-4f27-908a-3007b902e8a2</pingback:target>
      <slash:comments>6</slash:comments>
      <trackback:ping>http://blog.outlawdivers.org.uk/trackback.axd?id=f8d31ec2-cfa2-4f27-908a-3007b902e8a2</trackback:ping>
      <wfw:comment>http://blog.outlawdivers.org.uk/post/2009/12/08/Split-recordset-list-into-columns.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.outlawdivers.org.uk/syndication.axd?post=f8d31ec2-cfa2-4f27-908a-3007b902e8a2</wfw:commentRss>
    </item>
    <item>
      <title>Multi entry bulleted list / dropdown etc..</title>
      <description>&lt;p&gt;
Ever needed to display more than one value in a bulleted list or dropdown, I did and here is how I ended up getting round it.
&lt;/p&gt;
&lt;p&gt;
Using a normal bulleted list, we leave of the data source and on pageload run loadBulletedLists passing in the list and any variables to filter the stored stocedure used to populate it.
&lt;/p&gt;
&lt;p&gt;
loadBulletedLists takes the recordset and inserts the results into the list, if there are two columns in a row is adds both seperated by a comma, if not it adds the one column. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;aspx page&lt;/strong&gt;
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:BulletedList&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;blBulletedList&amp;quot;&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;EnableViewState&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:BulletedList&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;strong&gt;aspx.cs page&lt;/strong&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Linq;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI.WebControls;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Data;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Data.SqlClient;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Configuration;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Default : System.Web.UI.Page
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  11:  &lt;/span&gt;{
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (!IsPostBack)
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            loadBulletedLists(blBulletedList,0);
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  18:  &lt;/span&gt;    }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  19:  &lt;/span&gt;    &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; loadBulletedLists(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, &lt;span class="kwrd"&gt;object&lt;/span&gt; vParameter)
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  20:  &lt;/span&gt;    {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  21:  &lt;/span&gt;        BulletedList blList = ((BulletedList)sender);
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  22:  &lt;/span&gt;        blList.Items.Clear();
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  23:  &lt;/span&gt;&amp;nbsp;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  24:  &lt;/span&gt;        SqlConnection conn = &lt;span class="kwrd"&gt;null&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  25:  &lt;/span&gt;        conn = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlConnection(ConfigurationManager.AppSettings[&lt;span class="str"&gt;&amp;quot;ConnectionString&amp;quot;&lt;/span&gt;]);
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  26:  &lt;/span&gt;        SqlDataReader rdr = &lt;span class="kwrd"&gt;null&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  27:  &lt;/span&gt;        
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  28:  &lt;/span&gt;        conn.Open();
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  29:  &lt;/span&gt;        SqlCommand cmd = &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlCommand(&lt;span class="str"&gt;&amp;quot;selectBulletedListItems&amp;quot;&lt;/span&gt;, conn);
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  30:  &lt;/span&gt;        cmd.CommandType = CommandType.StoredProcedure;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  31:  &lt;/span&gt;        cmd.Parameters.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; SqlParameter(&lt;span class="str"&gt;&amp;quot;@Parameter&amp;quot;&lt;/span&gt;, vParameter));
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  32:  &lt;/span&gt;&amp;nbsp;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  33:  &lt;/span&gt;        &lt;span class="kwrd"&gt;string&lt;/span&gt; strColumn1;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  34:  &lt;/span&gt;        &lt;span class="kwrd"&gt;string&lt;/span&gt; strColumn2;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  35:  &lt;/span&gt;        rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  36:  &lt;/span&gt;        &lt;span class="kwrd"&gt;string&lt;/span&gt; strTitle = &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  37:  &lt;/span&gt;&amp;nbsp;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  38:  &lt;/span&gt;        &lt;span class="kwrd"&gt;while&lt;/span&gt; (rdr.Read())
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  39:  &lt;/span&gt;        {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  40:  &lt;/span&gt;            strColumn1 = rdr[&lt;span class="str"&gt;&amp;quot;fldColumn1&amp;quot;&lt;/span&gt;].ToString();
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  41:  &lt;/span&gt;            strColumn2 = rdr[&lt;span class="str"&gt;&amp;quot;fldColumn2&amp;quot;&lt;/span&gt;].ToString();
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  42:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (strColumn1 != &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  43:  &lt;/span&gt;            {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  44:  &lt;/span&gt;                strTitle = strColumn1;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  45:  &lt;/span&gt;            }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  46:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (strColumn2 != &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  47:  &lt;/span&gt;            {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  48:  &lt;/span&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (strTitle != &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;)
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  49:  &lt;/span&gt;                {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  50:  &lt;/span&gt;                    strTitle += &lt;span class="str"&gt;&amp;quot;, &amp;quot;&lt;/span&gt; + strColumn2;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  51:  &lt;/span&gt;                }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  52:  &lt;/span&gt;                &lt;span class="kwrd"&gt;else&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  53:  &lt;/span&gt;                {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  54:  &lt;/span&gt;                    strTitle = strColumn2;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  55:  &lt;/span&gt;                }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  56:  &lt;/span&gt;            }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  57:  &lt;/span&gt;            blList.Items.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; ListItem(strTitle));
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  58:  &lt;/span&gt;        }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  59:  &lt;/span&gt;    }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  60:  &lt;/span&gt;}
&lt;/pre&gt;
&lt;/div&gt;
</description>
      <link>http://blog.outlawdivers.org.uk/post/2009/11/25/Multi-entry-bulleted-list-dropdown-etc.aspx</link>
      <author>rb.nospam@nospam.outlawdivers.org.uk (Beanie)</author>
      <comments>http://blog.outlawdivers.org.uk/post/2009/11/25/Multi-entry-bulleted-list-dropdown-etc.aspx#comment</comments>
      <guid>http://blog.outlawdivers.org.uk/post.aspx?id=5ad342a7-12d1-4bbc-8200-243ffba57f09</guid>
      <pubDate>Wed, 25 Nov 2009 15:31:00 +0000</pubDate>
      <category>Development</category>
      <category>ASP</category>
      <dc:publisher>Beanie</dc:publisher>
      <pingback:server>http://blog.outlawdivers.org.uk/pingback.axd</pingback:server>
      <pingback:target>http://blog.outlawdivers.org.uk/post.aspx?id=5ad342a7-12d1-4bbc-8200-243ffba57f09</pingback:target>
      <slash:comments>9</slash:comments>
      <trackback:ping>http://blog.outlawdivers.org.uk/trackback.axd?id=5ad342a7-12d1-4bbc-8200-243ffba57f09</trackback:ping>
      <wfw:comment>http://blog.outlawdivers.org.uk/post/2009/11/25/Multi-entry-bulleted-list-dropdown-etc.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.outlawdivers.org.uk/syndication.axd?post=5ad342a7-12d1-4bbc-8200-243ffba57f09</wfw:commentRss>
    </item>
    <item>
      <title>Hide drop down with no data</title>
      <description>&lt;div class="csharpcode"&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; cboCountry_SelectedIndexChanged(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{        
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    cboState.DataBind();
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; (cboState.Items.Count != 0)
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        cboState.Visible = &lt;span class="kwrd"&gt;true&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   7:  &lt;/span&gt;        ListItem li = &lt;span class="kwrd"&gt;new&lt;/span&gt; ListItem(&lt;span class="str"&gt;&amp;quot;No State&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;0&amp;quot;&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        cboState.Items.Add(li);
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        cboState.SelectedIndex = cboState.Items.IndexOf(cboState.Items.FindByValue(&lt;span class="str"&gt;&amp;quot;0&amp;quot;&lt;/span&gt;));
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    &lt;span class="kwrd"&gt;else&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        cboState.Visible = &lt;span class="kwrd"&gt;false&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  15:  &lt;/span&gt;}
&lt;/pre&gt;
&lt;/div&gt;
</description>
      <link>http://blog.outlawdivers.org.uk/post/2009/10/27/Hide-drop-down-with-no-data.aspx</link>
      <author>rb.nospam@nospam.outlawdivers.org.uk (Beanie)</author>
      <comments>http://blog.outlawdivers.org.uk/post/2009/10/27/Hide-drop-down-with-no-data.aspx#comment</comments>
      <guid>http://blog.outlawdivers.org.uk/post.aspx?id=44f6ee7b-0662-4377-85d3-5b798faa1b94</guid>
      <pubDate>Tue, 27 Oct 2009 18:49:00 +0000</pubDate>
      <category>Development</category>
      <category>ASP</category>
      <dc:publisher>Beanie</dc:publisher>
      <pingback:server>http://blog.outlawdivers.org.uk/pingback.axd</pingback:server>
      <pingback:target>http://blog.outlawdivers.org.uk/post.aspx?id=44f6ee7b-0662-4377-85d3-5b798faa1b94</pingback:target>
      <slash:comments>9</slash:comments>
      <trackback:ping>http://blog.outlawdivers.org.uk/trackback.axd?id=44f6ee7b-0662-4377-85d3-5b798faa1b94</trackback:ping>
      <wfw:comment>http://blog.outlawdivers.org.uk/post/2009/10/27/Hide-drop-down-with-no-data.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.outlawdivers.org.uk/syndication.axd?post=44f6ee7b-0662-4377-85d3-5b798faa1b94</wfw:commentRss>
    </item>
    <item>
      <title>MotoGp silly season update</title>
      <description>&lt;p&gt;
With contract negotiations and rumours happening on a daily basis I
thought it might be a good idea to set out which teams have sorted out
their rider line up for 2010.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Fiat Yamaha&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Valentino
	Rossi&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;Jorge
	Lorenzo &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Repsol Honda Team&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Daniel
	Pedrosa&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;Andrea
	Doviziso &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Rizla Suzuki MotoGP&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Loris
	Capirossi&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;Alvaro Bautista &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Ducati Marlboro Team&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Nicky
	Hayden &lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;em&gt;TBC&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Monster Yamaha Tech 3&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Colin
	Edwards&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;Ben Spies&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Pramac Racing
(Ducati)&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;em&gt;TBC&lt;/em&gt;&lt;br /&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;em&gt;TBC &lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;San Carlo Honda
Gresini&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Marco
	Simoncelli&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;Marco
	Melandri&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;LCR Honda MotoGP&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Randy
	De Puniet (tbc)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;span&gt;Hiroshi Aoyama &lt;/span&gt;&lt;em&gt;(Rumour) &amp;ndash; Extra Bike&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Scot Racing Team
MotoGP (Honda)&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;em&gt;TBC&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Aspar (Ducati) &amp;ndash;&lt;em&gt; New team&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;H&amp;eacute;ctor Barber&amp;aacute;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
There are also rumours that Honda may be putting another four bikes
on the grid, this may include the one Lucio Cecchinello would like to
add to his team.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Riders without a confirmed ride for 2010:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;James Toseland&lt;/li&gt;
	&lt;li&gt;Chris Vermulen (&lt;em&gt;current seat taken&lt;/em&gt;)&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Alex de Angles (&lt;em&gt;current seat taken&lt;/em&gt;)&lt;/li&gt;
	&lt;li&gt;Toni Elias (&lt;em&gt;current seat taken&lt;/em&gt;)&lt;/li&gt;
	&lt;li&gt;Casey Stoner&lt;/li&gt;
	&lt;li&gt;Randy De Puniet (&lt;em&gt;LCR keen to keep him&lt;/em&gt;)&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Gabor Talmasi&lt;/li&gt;
	&lt;li&gt;Niccolo Canepa&lt;/li&gt;
	&lt;li&gt;Mika
	Kallio&lt;/li&gt;
&lt;/ul&gt;
</description>
      <link>http://blog.outlawdivers.org.uk/post/2009/09/17/MotoGp-silly-season-update.aspx</link>
      <author>rb.nospam@nospam.outlawdivers.org.uk (Beanie)</author>
      <comments>http://blog.outlawdivers.org.uk/post/2009/09/17/MotoGp-silly-season-update.aspx#comment</comments>
      <guid>http://blog.outlawdivers.org.uk/post.aspx?id=c16ab9c6-d18a-4bb0-a49c-e49b4bc351b3</guid>
      <pubDate>Thu, 17 Sep 2009 13:42:00 +0000</pubDate>
      <category>Bikes</category>
      <category>Racing</category>
      <dc:publisher>Beanie</dc:publisher>
      <pingback:server>http://blog.outlawdivers.org.uk/pingback.axd</pingback:server>
      <pingback:target>http://blog.outlawdivers.org.uk/post.aspx?id=c16ab9c6-d18a-4bb0-a49c-e49b4bc351b3</pingback:target>
      <slash:comments>9</slash:comments>
      <trackback:ping>http://blog.outlawdivers.org.uk/trackback.axd?id=c16ab9c6-d18a-4bb0-a49c-e49b4bc351b3</trackback:ping>
      <wfw:comment>http://blog.outlawdivers.org.uk/post/2009/09/17/MotoGp-silly-season-update.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.outlawdivers.org.uk/syndication.axd?post=c16ab9c6-d18a-4bb0-a49c-e49b4bc351b3</wfw:commentRss>
    </item>
    <item>
      <title>Forgiving Dropdown</title>
      <description>&lt;p&gt;
Ever need to have a dropdown which allows you to have a SelectedIndex that&amp;#39;s not in the list?
&lt;/p&gt;
&lt;p&gt;
This is how to write a control to allow you to do this.
&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Data;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI.WebControls;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.UI;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.ComponentModel;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; Controls {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; ForgivingDropDownList : DropDownList
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        [Category(&lt;span class="str"&gt;&amp;quot;Behavior&amp;quot;&lt;/span&gt;), DefaultValue(&lt;span class="kwrd"&gt;true&lt;/span&gt;)]
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; AllowInvalidSelectedValue
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  12:  &lt;/span&gt;        {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  13:  &lt;/span&gt;            get { &lt;span class="kwrd"&gt;return&lt;/span&gt; ViewState[&lt;span class="str"&gt;&amp;quot;allowInvalid&amp;quot;&lt;/span&gt;] != &lt;span class="kwrd"&gt;null&lt;/span&gt; ? (&lt;span class="kwrd"&gt;bool&lt;/span&gt;)ViewState[&lt;span class="str"&gt;&amp;quot;allowInvalid&amp;quot;&lt;/span&gt;] : &lt;span class="kwrd"&gt;true&lt;/span&gt;; }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  14:  &lt;/span&gt;            set { ViewState[&lt;span class="str"&gt;&amp;quot;allowInvalid&amp;quot;&lt;/span&gt;] = &lt;span class="kwrd"&gt;value&lt;/span&gt;; }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&amp;nbsp;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; SelectedValue
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  19:  &lt;/span&gt;            get
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  21:  &lt;/span&gt;                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;base&lt;/span&gt;.SelectedValue;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  22:  &lt;/span&gt;            }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  23:  &lt;/span&gt;            set
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  24:  &lt;/span&gt;            {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  25:  &lt;/span&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (!AllowInvalidSelectedValue)
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  26:  &lt;/span&gt;                {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  27:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;base&lt;/span&gt;.SelectedValue = &lt;span class="kwrd"&gt;value&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  28:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  29:  &lt;/span&gt;                }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  30:  &lt;/span&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;this&lt;/span&gt;.Items.Count != 0)
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  31:  &lt;/span&gt;                {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  32:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;if&lt;/span&gt; ((&lt;span class="kwrd"&gt;value&lt;/span&gt; == &lt;span class="kwrd"&gt;null&lt;/span&gt;) || (&lt;span class="kwrd"&gt;base&lt;/span&gt;.DesignMode &amp;amp;&amp;amp; (&lt;span class="kwrd"&gt;value&lt;/span&gt;.Length == 0)))
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  33:  &lt;/span&gt;                    {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  34:  &lt;/span&gt;                        &lt;span class="kwrd"&gt;this&lt;/span&gt;.ClearSelection();
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  35:  &lt;/span&gt;                        &lt;span class="kwrd"&gt;return&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  36:  &lt;/span&gt;                    }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  37:  &lt;/span&gt;                    ListItem item = &lt;span class="kwrd"&gt;this&lt;/span&gt;.Items.FindByValue(&lt;span class="kwrd"&gt;value&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  38:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (item == &lt;span class="kwrd"&gt;null&lt;/span&gt;)
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  39:  &lt;/span&gt;                    {
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  40:  &lt;/span&gt;                        &lt;span class="kwrd"&gt;base&lt;/span&gt;.SelectedValue = &lt;span class="kwrd"&gt;null&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  41:  &lt;/span&gt;                        &lt;span class="kwrd"&gt;return&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  42:  &lt;/span&gt;                    }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  43:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;base&lt;/span&gt;.SelectedValue = &lt;span class="kwrd"&gt;value&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  44:  &lt;/span&gt;                }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  45:  &lt;/span&gt;            }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  46:  &lt;/span&gt;        }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  47:  &lt;/span&gt;    }
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;  48:  &lt;/span&gt;}
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
Register it in web.config
&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;pages&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   2:  &lt;/span&gt;       &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;controls&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;tagPrefix&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;custom&amp;quot;&lt;/span&gt;  &lt;span class="attr"&gt;namespace&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Controls&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;controls&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;pages&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
Using the dropdown
&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Custom:ForgivingDropDownList&lt;/span&gt;  &lt;span class="attr"&gt;AppendDataBoundItems&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;cbo&amp;quot;&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;DataSourceID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;dse&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;DataValueField&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;fldID&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;DataTextField&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;fld&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;SelectedValue&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;#39;&amp;lt;%# bind(&amp;quot;fldID&amp;quot;) %&amp;gt;&amp;#39;&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Custom:ForgivingDropDownList&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre&gt;
&lt;span class="lnum"&gt;   3:  &lt;/span&gt;                   
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
Simples ;-)
&lt;/p&gt;
</description>
      <link>http://blog.outlawdivers.org.uk/post/2009/09/09/Forgiving-Dropdown.aspx</link>
      <author>rb.nospam@nospam.outlawdivers.org.uk (Beanie)</author>
      <comments>http://blog.outlawdivers.org.uk/post/2009/09/09/Forgiving-Dropdown.aspx#comment</comments>
      <guid>http://blog.outlawdivers.org.uk/post.aspx?id=955d3f4d-6ebe-4d54-b2d4-97f304fcd24a</guid>
      <pubDate>Wed, 09 Sep 2009 08:56:00 +0000</pubDate>
      <category>Development</category>
      <dc:publisher>Beanie</dc:publisher>
      <pingback:server>http://blog.outlawdivers.org.uk/pingback.axd</pingback:server>
      <pingback:target>http://blog.outlawdivers.org.uk/post.aspx?id=955d3f4d-6ebe-4d54-b2d4-97f304fcd24a</pingback:target>
      <slash:comments>18</slash:comments>
      <trackback:ping>http://blog.outlawdivers.org.uk/trackback.axd?id=955d3f4d-6ebe-4d54-b2d4-97f304fcd24a</trackback:ping>
      <wfw:comment>http://blog.outlawdivers.org.uk/post/2009/09/09/Forgiving-Dropdown.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.outlawdivers.org.uk/syndication.axd?post=955d3f4d-6ebe-4d54-b2d4-97f304fcd24a</wfw:commentRss>
    </item>
  </channel>
</rss>