<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-8185817578532832607</atom:id><lastBuildDate>Thu, 18 Feb 2010 11:17:19 +0000</lastBuildDate><title>CraigW Blog</title><description>A catalogue of my discoveries in software development and related subjects, that I think might be of use or interest to everyone else, or to me when I forget what I did!</description><link>http://www.craigwardman.com/blog/blog-content.html</link><managingEditor>noreply@blogger.com (craigw)</managingEditor><generator>Blogger</generator><openSearch:totalResults>37</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-1520547153673965009</guid><pubDate>Thu, 07 Jan 2010 11:33:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.495Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>AJAX</category><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><title>AJAX Calendar Extender IE8 Bug</title><atom:summary type='text'>The calendar extender that comes with the AJAX Control Toolkit has a bug in IE8 whereby the 'left/right' arrows to scroll through months do not work.This is caused by the fact that the 'title' div spans the full width of the control and so the links end up behind this div.To fix this problem, add the following line to your stylesheet:.ajax__calendar_title {width:150px; margin:auto; }</atom:summary><link>http://www.craigwardman.com/blog/2010/01/ajax-calendar-extender-ie8-bug.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-6295132394922372485</guid><pubDate>Mon, 04 Jan 2010 14:17:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.496Z</atom:updated><title>HelpFindMeA.co.uk Launches!</title><atom:summary type='text'>One of the biggest projects I have worked on has now launched! As mentioned in the projects section of my website, architecturally HelpFindMeA.co.uk is a site I created in ASP.NET 3.5 using several MS-SQL backend databases. The site uses several n-Tier layered projects built in C# to access the various data sources from the VB.NET web front end. The site was built with extensibility in mind to </atom:summary><link>http://www.craigwardman.com/blog/2010/01/helpfindmeacouk-launches.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-2658268449907945445</guid><pubDate>Fri, 04 Dec 2009 15:56:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.499Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>javascript</category><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><title>Disabling Weekends in the ASP Calender Control</title><atom:summary type='text'>ASP.NET includes a built in calendar control 'asp:Calendar' which is an easy way to display a calendar on your page.This is fully customisable in terms of look and feel and you can use this functionality to apply restrictions to the selectable dates.A lot times when building commercial websites the calendar week should only really apply to week days and not weekends. Although you should be </atom:summary><link>http://www.craigwardman.com/blog/2009/12/disabling-weekends-in-asp-calender.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-4517286667611872266</guid><pubDate>Tue, 11 Aug 2009 10:13:00 +0000</pubDate><atom:updated>2010-01-15T13:46:25.452Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><title>Recreating SSI Functionality in ASP.NET</title><atom:summary type='text'>If your site runs on an ASP.NET server and does not support the classic SSI method of including files for output.i.e.&lt;!--#include virtual="/myinclude.asp" --&gt;Then you may wish to implement your own version of SSI.In my particular example, I am reading from a HTML file on the server and processing the content before rendering it to the client. I don't see any reason however, why this technique </atom:summary><link>http://www.craigwardman.com/blog/2009/08/recreating-ssi-functionality-in-aspnet.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-5914346727663638499</guid><pubDate>Fri, 17 Jul 2009 10:41:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.505Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>VB.NET</category><category domain='http://www.blogger.com/atom/ns#'>.NET</category><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><title>Definining Event Handlers for Custom Events In the Markup</title><atom:summary type='text'>When you have controls nested inside a databound control, you have two options to hook up their events to event handlers.One option is to handle the 'OnItemDataBound'/'OnRowDataBound' or equivalent event of the parent control, find the child control and then use 'AddHandler' to hook up the event handler.The second option is to declaratively put the name of the event handler sub in the markup of </atom:summary><link>http://www.craigwardman.com/blog/2009/07/definining-event-handlers-for-custom.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-978108970167506826</guid><pubDate>Fri, 05 Jun 2009 10:21:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.507Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>VB.NET</category><category domain='http://www.blogger.com/atom/ns#'>.NET</category><category domain='http://www.blogger.com/atom/ns#'>Reverse Engineering</category><title>Fixing Binary Formatted Data After a Code Change</title><atom:summary type='text'>I seem to have a habit of changing classnames and/or namespaces as a project develops to make them more meaningful and to help make space for classes which would have benefited from another's name/namespace.When using the binary formatter to serialize an instance of an object, it is important to note that the type information (assembly, namespace, classname) is stored with the data; as opposed to</atom:summary><link>http://www.craigwardman.com/blog/2009/06/fixing-binary-formatted-data-after-code.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-1588605177506439983</guid><pubDate>Fri, 15 May 2009 16:13:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.510Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>VB.NET</category><category domain='http://www.blogger.com/atom/ns#'>.NET</category><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><title>Setting a validation group on a User Control</title><atom:summary type='text'>Using the built in .NET validation, you can assign a 'validation group' to a set of validation controls, submit buttons and validation summary. This creates a separation between different sets of controls on the page, so that only the relevant controls are validated for a specific submit button.When you design your application as separate user control components, you may want to set a different </atom:summary><link>http://www.craigwardman.com/blog/2009/05/setting-validation-group-on-user.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-5173909237813905558</guid><pubDate>Tue, 12 May 2009 08:30:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.513Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Unit Testing</category><category domain='http://www.blogger.com/atom/ns#'>.NET</category><category domain='http://www.blogger.com/atom/ns#'>C Sharp</category><title>Running Initialization Code in Visual Studio Unit Testing</title><atom:summary type='text'>Often in a project, you have code which runs when the application starts (such as in Program.cs or in your Global.asax file) which will set up all of your shared resources for the rest of the project, such as initializing global variables, configuring the BLL, connecting to a datasource etc.As mentioned above, their are places to put this code provided for you.When you are working within a unit </atom:summary><link>http://www.craigwardman.com/blog/2009/05/running-initialization-code-in-visual.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-2255120432259070975</guid><pubDate>Fri, 24 Apr 2009 23:10:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.516Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Blogger</category><category domain='http://www.blogger.com/atom/ns#'>SEO</category><title>Keyword Density Cloud</title><atom:summary type='text'>The 'keyword density cloud' was a nice little widget I worked on at work, to provide a graphical 'tag cloud like' analysis of the keyword density for a given web page.It can be used by SEO concious writers to quickly examine what a page of content may appear to be about (to search engines) based on the 'top words' and the relative strength of those top words, but is also a nice overview of the </atom:summary><link>http://www.craigwardman.com/blog/2009/04/keyword-density-cloud.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-1240398824094319313</guid><pubDate>Fri, 13 Mar 2009 10:22:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.518Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><category domain='http://www.blogger.com/atom/ns#'>SEO</category><title>Preventing Uppercase URLs in ASP.NET</title><atom:summary type='text'>According to RFC3986, the path portion of a URI is case-sensitive.Google and other search engines use this ruling in their crawlers, so that pages which differ by case are treated as different pages.This can be problematic when working in a non-case sensitive environment, such as IIS on Windows, because this rule is ignored and any variation in case will still return the same page. This leads to </atom:summary><link>http://www.craigwardman.com/blog/2009/03/preventing-uppercase-urls-in-aspnet.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-5133324747942448151</guid><pubDate>Mon, 09 Mar 2009 09:21:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.523Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>.NET</category><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><title>Non-Databound DropDownList SelectedValue Problem</title><atom:summary type='text'>When you have an asp:DropDownList which is *not* databound, (i.e. you add the items manually) there are a few things you have to do to get 'SelectedValue' to work.ASP.NET will ignore the 'SelectedValue' when you manually add items unless you make a call to 'DataBind' on the drop down list, so you need to add this line of code to force ASP.NET to select the correct item.However, because the '</atom:summary><link>http://www.craigwardman.com/blog/2009/03/non-databound-dropdownlist.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-3209766257668985455</guid><pubDate>Tue, 24 Feb 2009 09:51:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.525Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>VB.NET</category><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><title>Automatic Unique Names for Session/ViewState Data</title><atom:summary type='text'>When you store information using a key based storage mechanism, such as is provided by the 'Session' and 'ViewState' objects, you want to avoid referencing these directly by key name, as this means all references to the data need to be casted, leaving you liable to invalid cast exceptions, it means it is up to the developer to remember the key names and also leaves you liable to typos, spelling </atom:summary><link>http://www.craigwardman.com/blog/2009/02/automatic-unique-names-for.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-9175360325262837192</guid><pubDate>Tue, 17 Feb 2009 16:17:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.529Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>AJAX</category><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><title>Textbox CrLf in Firefox using AJAX UpdatePanel</title><atom:summary type='text'>When using a MultiLine textbox inside an ASP.NET AJAX update panel, you may encounter problems with carriage return line feeds in your text on the server using Firefox (and potentially other browsers).Internet Explorer uses the Windows style CrLf (13 10) for newlines in a textarea but Firefox uses Unix style Lf (10) only.On a synchronous postback it seems ASP.NET fixes this and you will get CrLf </atom:summary><link>http://www.craigwardman.com/blog/2009/02/textbox-crlf-in-firefox-using-ajax.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-8654836228539791250</guid><pubDate>Mon, 02 Feb 2009 13:47:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.531Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Development Tools</category><category domain='http://www.blogger.com/atom/ns#'>Regular Expressions</category><title>Regular Expression Tools</title><atom:summary type='text'>A useful thing to have as a developer is a tool for testing your regular expressions as you build them.There are many out there, but I have two particular favourites.For simple testing when building a regex, I like to use 'RegexBuilder'. It has a very simple and quick off the mark interface where you can start typing your regex with 2 testing texts to see if it is working properly:For more </atom:summary><link>http://www.craigwardman.com/blog/2009/02/regular-expression-tools.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-4626330707361603919</guid><pubDate>Tue, 13 Jan 2009 15:48:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.533Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><title>ASP.NET Multiple Page Load Problem</title><atom:summary type='text'>I've had this problem many a time and every time I get it again I forget what the cause was; This time I'm going to blog it!I have encountered three similar situations where ASP.NET fires the page_load event twice, or more. In one scenario (on a postback) your page load gets called once for the postback (IsPostback = true) and then gets called again, with IsPostback = false, which can cause a </atom:summary><link>http://www.craigwardman.com/blog/2009/01/aspnet-multiple-page-load-problem.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-241597656394866016</guid><pubDate>Wed, 07 Jan 2009 10:31:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.535Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>.NET</category><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><title>Visual Studio, Cassini, IIS and Debugging</title><atom:summary type='text'>If you develop ASP.NET websites, you are probably aware that instead of using the built in Visual Studio Web Server (Cassini) for debugging, you can use IIS.If you have configured this for your project, Visual Studio creates a virtual directory in IIS and pressing F5 to debug won't start the built in server but will instead attach to the IIS website.Using IIS over Cassini has several advantages, </atom:summary><link>http://www.craigwardman.com/blog/2009/01/visual-studio-cassini-iis-and-debugging.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-1040007344896620334</guid><pubDate>Wed, 10 Dec 2008 10:57:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.538Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>VB.NET</category><category domain='http://www.blogger.com/atom/ns#'>.NET</category><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><title>Data Binding to an Extension Method</title><atom:summary type='text'>If you have defined extension methods to your entities in your BLL, (for example to format the output, or amalgamate some result) you may wish to display the return value of the extension method in a bound control, such as an ASP.NET GridView.In order to access an extension method, you have to import the containing namespace into the codefile you are working with. The problem is that the bindings</atom:summary><link>http://www.craigwardman.com/blog/2008/12/binding-to-extension-method.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-2795824547843914730</guid><pubDate>Fri, 28 Nov 2008 15:33:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.541Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>.NET</category><category domain='http://www.blogger.com/atom/ns#'>C Sharp</category><category domain='http://www.blogger.com/atom/ns#'>Regular Expressions</category><title>Matching Tags using Regular Expressions Balancing Groups</title><atom:summary type='text'>The regular expressions engine provided by the .NET Framework includes a new feature known as 'balancing groups'.This feature allows you to increment/decrement the match count of a named capturing group by giving the group a positive and negative match context. You can then test to see you have an equal number of matches, by testing if the group has a value (i.e. an effective zero result means </atom:summary><link>http://www.craigwardman.com/blog/2008/11/matching-tags-using-regular-expressions.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-7777981910257089084</guid><pubDate>Tue, 18 Nov 2008 16:08:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.545Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>.NET</category><category domain='http://www.blogger.com/atom/ns#'>C Sharp</category><category domain='http://www.blogger.com/atom/ns#'>LINQ</category><title>LINQ Select Distinct on Custom Class Property</title><atom:summary type='text'>The standard LINQ .Distinct() function will pass your IEnumerable items to the 'default comparer' to differenciate the items.If your IEnumerable contains objects of an arbitrary class you would ordinarily have to create a IEqualityComparer to compare the relavent property of each instance.This seems like too much work just to simply remove objects that have a duplicate property value.I came up </atom:summary><link>http://www.craigwardman.com/blog/2008/11/linq-select-distinct-on-custom-class.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-689890510690616498</guid><pubDate>Wed, 05 Nov 2008 11:09:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.548Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>.NET</category><category domain='http://www.blogger.com/atom/ns#'>AJAX</category><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><title>ScriptManager Service Reference and HTTPS</title><atom:summary type='text'>If you use the ASP.NET AJAX script manager with a service reference to a local WCF service, then you may encounter problems when using HTTPS on the page.If you have not configured your service for use with HTTPS you will most likely receive 'xyzService is not defined' errors in your Javascript. This is because when you add a service reference to '~/Services/xysService.svc' the AJAX Script Manager</atom:summary><link>http://www.craigwardman.com/blog/2008/11/scriptmanager-service-reference-and.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-7248447060216273350</guid><pubDate>Tue, 04 Nov 2008 14:38:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.550Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>.NET</category><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><category domain='http://www.blogger.com/atom/ns#'>URL Rewriting</category><title>ASP.NET URL Rewriting and Tilde</title><atom:summary type='text'>In ASP.NET controls you can use the tilde '~' character to signify the virtual application root of the website, for example when sourcing an image for an ImageButton.Code:   &lt;asp:ImageButton ID="ImageButton1" runat="server" AlternateText="Example Button" ImageUrl="~/images/button.png" /&gt; This is fine for most cases. However, when using URL rewriting (via HttpHandlers) it can become a problem, </atom:summary><link>http://www.craigwardman.com/blog/2008/11/aspnet-url-rewriting-and-tilde.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-4156966636749451554</guid><pubDate>Thu, 30 Oct 2008 15:14:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.554Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>VB.NET</category><category domain='http://www.blogger.com/atom/ns#'>.NET</category><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><category domain='http://www.blogger.com/atom/ns#'>URL Rewriting</category><category domain='http://www.blogger.com/atom/ns#'>SEO</category><title>Safe Rewriting URL Encoder</title><atom:summary type='text'>When using URL rewriting to make nice URLs without querystrings, it is useful to include a meaningful name for the page, i.e. the page title, in the URL itself. This helps usability in distinguishing pages and also aids search engines in spidering different content that may be generated by a single page on your server.For some reason, the HttpUtility.UrlEncode and HttpUtility.HtmlEncode just dont</atom:summary><link>http://www.craigwardman.com/blog/2008/10/safe-url-encoder.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-3139481468023462143</guid><pubDate>Mon, 27 Oct 2008 20:51:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.557Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>VB.NET</category><category domain='http://www.blogger.com/atom/ns#'>Blogger</category><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><title>Blogger extensions and integration using ASP.NET</title><atom:summary type='text'>After recently starting this blog using my Blogger account and its FTP publishing feature I wanted a more seamless integration with my existing site for the index page of the blog. In other words, I wanted to show the latest blogs as part of my existing site using the masterpage I have in ASP.NET.To achive this goal, I have set Blogger to publish to /blog on my domain, with a proprietary filename</atom:summary><link>http://www.craigwardman.com/blog/2008/10/blogger-extensions-and-integration.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-2242348475186127027</guid><pubDate>Thu, 23 Oct 2008 20:48:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.560Z</atom:updated><title>Blog Launch</title><atom:summary type='text'>I've started this blog on my site to catalogue anything I think might be of use or interest to everyone else, or to me when I forget what I did!This will most likely be software development related stuff, since this is what I do day in day out. This will mainly be ASP.NET/VB.NET/C# stuff depending on what language I am using at the time but will also have some other stuff thrown in for good </atom:summary><link>http://www.craigwardman.com/blog/2008/10/blog-launch.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8185817578532832607.post-5297362375280252224</guid><pubDate>Thu, 09 Oct 2008 09:24:00 +0000</pubDate><atom:updated>2010-01-14T17:18:31.563Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>VB.NET</category><category domain='http://www.blogger.com/atom/ns#'>.NET</category><category domain='http://www.blogger.com/atom/ns#'>ASP.NET</category><title>Programmatically Setting the Default Button of a Textbox</title><atom:summary type='text'>In ASP.NET, setting the default button of a textbox is usually a simple task as you simply wrap the button and textbox in an asp:panel and set the 'defaultbutton' attribute on the panel.Sometimes however, it is not possible to put the button and textbox in a panel together, for example if the textbox is part of a databound template (e.g. gridview, repeater etc.)If you look at the HTML code that </atom:summary><link>http://www.craigwardman.com/blog/2008/10/programmatically-setting-default-button.html</link><author>noreply@blogger.com (craigw)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item></channel></rss>