ASP.NET Text Character Counter

A textbox character counter is a pretty simple piece of functionality, and there's a lot of different ways to apply one to your application. The following method is nice and simple, and can be done using only clientside JavaScript if required, or combined with server side code in order to create a more dynamic effect (ie, turning the counter on/off conditionally).

First, we'll add the most basic static implementation of the field counter to a form using only a JavaScript function and event handlers in the aspx file, then we'll look at how we can extend the functionality and dynamic nature of the counter by using server side code.

Basic Implementation
First, we need to add a small JavaScript function somewhere. For now, just add it somewhere in your form body, or if you have a common library of JavaScript functions in a .js file, simply add it in there. The function looks like this: <script type="text/javascript">

function textCounter(field, countfield, maxlimit)
{
if (field.value.length > maxlimit)
   field.value = field.value.substring(0, maxlimit);
else
   countfield.value = maxlimit - field.value.length;
}

</script>

Now add the event handlers to the text field, which in this case is called 'txtMessage':
<asp:TextBox ID="txtMessage" TextMode="MultiLine"  Width="200px" Rows="3" runat="server"  onkeyup="textCounter(txtMessage, this.form.remLen, 160);" onkeydown="textCounter(txtMessage, this.form.remLen, 160);" />

Finally, add the HTML input field which will display the counter:
<input readonly="readonly" type="text" name="remLen" size="3" maxlength="3" value="160" /> characters left

That's the basic implementation done. Pretty simple.

You should now be able to load your form, and type text in the textbox while the counter updates. Once you hit your character limit, you'll be prevented from typing any more characters in the box.

This all works fine in a simple example, but there are some serious limitations with the static implementation. What happens if txtMessage is embedded inside another element, such as a DataGrid or Repeater? It's name will no longer simply be 'txtMessage', as the name of the parent control will be added when it's rendered to the browser. What happens if we want to remove the character counter for any reason based on the contents of the page? Finally, what about if we want to change the way our JavaScript function performs for any reason? These are all limitations we can overcome with serverside code.

Adding some Server Side smarts
First, lets revisit the JavaScript function. Maybe for some reason we don't want to add it to a .js library, or to the .aspx file, then as an alternative we can dynamically add the function in either the Page_Load or the OnLoad event of our page using Page.ClientScript.RegisterClientScriptBlock (if you're using ASP.NET 1.1 then this is Page.RegisterClientScriptBlock), like so:
protected void Page_Load(object sender, EventArgs e)
{
    string theFunction = @"<script language=javascript>
function textCounter(field, countfield, maxlimit)
{
                if (field.value.length > maxlimit)
                    field.value = field.value.substring(0, maxlimit);
                else
                    countfield.value = maxlimit - field.value.length;
                }
            </script>";

    Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
        "ClientScriptFunction", theFunction);
}

In this simple example it doesn't seem overly useful, however consider the fact that you could dynamically change the way the JavaScript behaves here in the code (possibly based on the state of the page), and dynamically output a different function based on different scenarios. Using String.Format you can cleanly manipulate this function, and substitute parts of it at will - for example, if your JavaScript function contained text messages that were displayed to the user, then this would be an easy place to add multi language support.

Now, lets change the event handlers on the txtMessage field so they're created dynamically when the page loads. Remove the onkeyup and onkeydown events from your definition of txtMessage in the aspx file, and add the following code to your Page_Load or OnLoad event in code:
string theFunction = "javascript:textCounter(" + txtMessage.ClientID + ",this.form.remLen,160);";

txtMessage.Attributes.Add("onKeyDown", theFunction );
txtMessage.Attributes.Add("onKeyUp", theFunction);

This solves a couple of issues for us. Firstly, we no longer need to worry about what the exact name of our textbox control 'txtMessage' ends up being. It can be nested inside repeaters, grids, whatever - txtMessage.ClientID will always return the full and proper name for us. This also means we can apply counters across multiple textboxes on a form, however we'd obviously need to add multiple output fields to our form somewhere and modify the JavaScript function accordingly. We also have the ability to change which control we want to apply the counter to - if we need to select which textbox is having the counter applied to it when the form loads, then we can do that simply by using it's ClientID property. Adding the events in code also allows us to easily disable the counter if we need to. For example, consider that txtMessage resides on a form which is used to send a message via SMS or Email. The 160 character limitation isn't required for email, so if that's what the user has selected, then we can simply not add the event handlers to the txtMessage control when the page is (re)loaded. in this case, you might want to enclose the html output field and text in a panel, and show/hide that accordingly as well as shown in the following simple example:
 if(rbModeSelect.SelectedValue == MessageTypesEnum.SMS.ToString())
 {
  string theFunction = "javascript:textCounter(" + txtMessage.ClientID + ",this.form.remLen,160);";

  txtMessage.Attributes.Add("onKeyDown", theFunction);
  txtMessage.Attributes.Add("onKeyUp", theFunction);
  pnlSMSCharsRemaining.Visible = true;
}
else
{
  txtMessage.Attributes.Remove("onKeyDown");
  txtMessage.Attributes.Remove("onKeyUp");
  pnlSMSCharsRemaining.Visible = false;
}

Tags:

Summary
The above example shows you how to implement a pretty simple character counter to a text field. However it should also give you an insight into some of the functionality that is available when you combine client side script with server side code. I'll discuss this further in one of my next articles, expanding on these concepts as well as showing a few more advanced techniques.

EDIT: 07 Feb 09, For those of you who are trying to get something like this to work with Master Pages, I've created a quick update post: ASP.NET Text Character Counter – the Master page version

 Print | Posted on Monday, December 04, 2006 10:35 PM | Filed Under [ ASP.NET Web Development C# ]



Feedback

Gravatar

# ASP.NET Text Character Counter

it is good

3/16/2007 10:30 PM | kiran

Gravatar

# ASP.NET Text Character Counter

does the job nicely - ta!

3/26/2007 9:25 PM | t

Gravatar

# ASP.NET Text Character Counter

How do you make this work inside of a masterpage?

8/1/2007 7:42 AM | jmilton

Gravatar

# ASP.NET Text Character Counter

I can't see anything there which would have a problem inside a master page. What sort of problems are you experiencing?

8/1/2007 10:46 PM | Ross Hawkins

Gravatar

# ASP.NET Text Character Counter

My code appears to be generating correctly. I am dynamically naming both my textarea and my label control. (I was having an issue with the generated javascript when I tried naming my label control, so I let the server do it).

Both my textarea and label are runat=server.

When I type inside my textbox I get no javascript errors BUT my label does not change.

8/2/2007 1:38 AM | JMILTON

Gravatar

# ASP.NET Text Character Counter

Hi James, I've replied to your email - let me know how you get on!

8/2/2007 7:56 PM | Ross Hawkins

Gravatar

# re: ASP.NET Text Character Counter

Thanks for that!

After a bit of modification I got it to work inside a DetailsView using something like this:

TextBox txtTestDesc = (TextBox)dvwGeneral.FindControl("TestDescription");

if (txtTestDesc != null)
{
string theFunction = "javascript:textCounter(" + txtTestDesc.ClientID + ",this.form.remDescLen,255);";

txtTestDesc.Attributes.Add("onKeyDown", theFunction);
txtTestDesc.Attributes.Add("onKeyUp", theFunction);
}

9/21/2007 6:22 PM | schlub

Gravatar

# re: ASP.NET Text Character Counter

I have four text boxes. There are four separate text boxes because there needs to be reporting on the data placed in those text boxes. the data from the four text boxes need to combined in a single string to be displayed on a web page in a limited space (255 char total). How can I use this functionality to combine the character count to span all four text boxes?

10/30/2007 8:01 AM | Benson Benson

Gravatar

# re: ASP.NET Text Character Counter

erfefefe

12/14/2007 8:46 PM | gesgf

Gravatar

# re: ASP.NET Text Character Counter

Just what i needed, thx!

2/15/2008 8:38 AM | Maja

Gravatar

# re: ASP.NET Text Character Counter

How do you make this work inside of a masterpage?

5/31/2008 5:14 PM | sarla jaiswal

Gravatar

# re: ASP.NET Text Character Counter

Nice work, thank you :)

8/1/2008 6:18 AM | Burak Donbay

Gravatar

# re: ASP.NET Text Character Counter

Really thanks for it !!! it really help a lot! :)

8/20/2008 9:49 PM | stanSebastian

Gravatar

# re: ASP.NET Text Character Counter

hi, could this work in a gridview to show character counts against each comments box running down the column?
ie

row1:textbox1: comments : this is a test 14 char
row2:textbox2: comments : this is also a test 19 chars

etc ?

9/18/2008 9:20 PM | DaveT

Gravatar

# re: ASP.NET Text Character Counter

Hi Dave,

It'd need some modification to work inside a gridview, but the basic concept still applies. I'm not sure whether you're going to be modifying your gridview to always be in edit mode, or if you're going to use some sort of a bulk edit mode, or whether you're talking about showing character counts against non editable comments? If you're talking about the last option there's easier ways to do it.

Give me some more info and I'll see if I can be of more assistance!

9/19/2008 9:31 AM | Ross Hawkins

Gravatar

# re: ASP.NET Text Character Counter

How would i go with ASP.NET 2.0 as there are no onKeyUp and OnKeyDown associated with Textbox Control.

10/9/2008 6:20 PM | Atish

Gravatar

# re: ASP.NET Text Character Counter

Hi Atish,

I was using ASP.NET 2.0 in my example - even though there's no intellisense and the IDE claims that event doesn't exist, it does. So just ignore the warnings and you should be fine.

10/9/2008 9:36 PM | Ross Hawkins

Gravatar

# re: ASP.NET Text Character Counter

hi.
thanks. but why it doesn't work?
the TextBox doesn't have onkeyup or onkeydown eventhandlers, should i add them?
is the first code(simple) complete?

10/17/2008 12:24 PM | ashkan

Gravatar

# re: ASP.NET Text Character Counter

the <textarea> have these attributes but TextBox!
the second problem is typing wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww from users. how can i breck it so it doesn't destroy my website appearance?

thank you

10/17/2008 1:46 PM | ashkan

Gravatar

# re: ASP.NET Text Character Counter

Hi Ashkan,

The first code sample is complete. The onkeyup and onkeydown events clientside events of the rendered input tag, not of the asp:Textbox. So the IDE complains that they don't exist, but when the page is rendered the client knows what to do.

10/21/2008 9:30 AM | Ross Hawkins

Gravatar

# re: ASP.NET Text Character Counter

Thanx Alot


nice code

11/25/2008 6:43 PM | satinder singh

Gravatar

# re: ASP.NET Text Character Counter

nice code. it really helps alot. thanks.

12/2/2008 2:43 PM | christine

Gravatar

# re: ASP.NET Text Character Counter

nice code. it really helps alot. thanks.

12/2/2008 2:43 PM | christine

Gravatar

# re: ASP.NET Text Character Counter

nothing works.. in .Net 1.1

12/9/2008 11:36 PM | Kins

Gravatar

# re: ASP.NET Text Character Counter

OOps... sry for the previous comment.. i forgot to change the ID of my text box.. it works great.. thnx a lot.

12/9/2008 11:40 PM | Kins

Gravatar

# re: ASP.NET Text Character Counter

Hi,

Works like a charm.

Thanks.

1/7/2009 7:37 PM | Paolo Izmoto

Gravatar

# re: ASP.NET Text Character Counter

Cant get the count to work on my aspx page!!

1/31/2009 4:48 AM | Michael Breen

Gravatar

# re: ASP.NET Text Character Counter

Hi Michael,

You might need to elaborate on that a little..

1/31/2009 8:45 AM | Ross Hawkins

Gravatar

# re: ASP.NET Text Character Counter

I could not get this to work either. My aspx page is contained in a Masterpage.

Here is the following code from the Page_Load event

Dim theFunction As String = "<script type='text/javascript'> function textCounter(field, countfield, maxlimit){If (field.value.length > maxlimit) {field.value = field.value.substring(0, maxlimit);} else {countfield.value = maxlimit - field.value.length;} }</script>"
Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "ClientScriptFunction", theFunction)

theFunction = "javascript:textCounter(" & txtAddUserComment.ClientID & "," & lblUserCharCount.ClientID & ",200);"

txtAddUserComment.Attributes.Add("onKeyDown", theFunction)
txtAddUserComment.Attributes.Add("onKeyUp", theFunction)

theFunction = "javascript:textCounter(" & txtAddAdminComments.ClientID & "," & lblAdminCharCount.ClientID & ",200);"
txtAddAdminComments.Attributes.Add("onKeyUp", theFunction)
txtAddAdminComments.Attributes.Add("onKeyDown", theFunction)

I get an Object Expected JS error in my browser.

2/6/2009 5:22 AM | AJones

Gravatar

# re: ASP.NET Text Character Counter

Can't get it to work in a masterpage either... anyone have any luck?

2/7/2009 10:51 AM | Jack

Gravatar

# re: ASP.NET Text Character Counter

Hi all,

I've posted a quick update to the article including a couple of examples of counters which are compatiable with Master Pages:

www.rosshawkins.net/archive/2009/02/07/577.aspx

Please let me know if you're still having problems!

2/7/2009 6:08 PM | Ross Hawkins

Gravatar

# re: ASP.NET Text Character Counter

Thanks, I really appreciate it, I will look into that on Monday.

2/8/2009 6:26 AM | Jack

Gravatar

# re: ASP.NET Text Character Counter

That is spot on. I can testify that this works with masterpages. Cheers Ross.

2/10/2009 9:10 PM | AJones

Gravatar

# re: ASP.NET Text Character Counter

Ross

I have the text counter appearing on my aspx page and it contains the 160 characters but when I type into the textbox the 160 does not change? My code is as follows:

.js File


function textCounter(field, countfield, maxlimit)
{
if (field.value.length > maxlimit)
field.value = field.value.substring(0, maxlimit);
else
countfield.value = maxlimit - field.value.length;
}


apsx page

<asp:TextBox ID="txt_Q6" runat="server" Rows="5" CssClass="survey_textbox" TextMode="MultiLine" onkeyup="textCounter(txtMessage, this.form.remLen, 160);" onkeydown="textCounter(txtMessage, this.form.remLen, 160);">
</asp:TextBox>


<input readonly="readonly" type="text" name="remLen" size="3" maxlength="3" value="160" /> characters left

Does this make it any clearer?

Mick

2/13/2009 10:37 PM | Michael Breen

Gravatar

# re: ASP.NET Text Character Counter

Michael,

The first argument to the onkeyup function needs to be the id of your text box - in your case, you need to pass txt_Q6 instead of txtMessage.

If you've got more than one of those fields you might want to look at adding the counter dynamically in codebehind.

2/13/2009 11:09 PM | Ross Hawkins

Gravatar

# re: ASP.NET Text Character Counter

Ross

I just realised that when I posted the last comment and changed it but it still did not work!!

The <script type="text/javascript"> at the top of the .js file is not reconised if that has any bearing on it.

Any other suggestions Ross?

Mick

2/13/2009 11:38 PM | Michael Breen

Gravatar

# re: ASP.NET Text Character Counter

i still cant get the code working....

3/1/2009 6:07 PM | Prashant

Gravatar

# re: ASP.NET Text Character Counter

Prashant,

Can you either post a bit more info here or email me? A bit more background about what you're trying to do and any error messages you're seeing would be useful.

Also, if you're using Master Pages then be sure to check out this link: www.rosshawkins.net/archive/2009/02/07/577.aspx

3/2/2009 9:54 PM | Ross Hawkins

Gravatar

# re: ASP.NET Text Character Counter

I copied, I pasted, it worked! Thanks for saving me a lot of time! I just wish my Google search would have been smarter from the start so I would have hit this link first.

I added an inline style to the <input> tag: style="border: solid 0px white; background: white;"

I wanted the <input> to look like text in a <span> rather than text in a text box. This did the trick. Note, change both instances of "white" to whatever the background of the page is.

And yes, 0px white is overkill. Either will effectively make the border invisible.

4/11/2009 4:56 AM | thohan

Gravatar

# re: ASP.NET Text Character Counter

Great code thanks a bunch

5/25/2009 1:45 AM | Eric

Gravatar

# re: ASP.NET Text Character Counter

Thank you .

7/3/2009 3:23 AM | tolga

Gravatar

# re: ASP.NET Text Character Counter

Thank you.

7/11/2009 12:49 PM | koxp

Gravatar

# re: ASP.NET Text Character Counter

Thank you admin

7/11/2009 12:51 PM | mp3 dinle

Gravatar

# re: ASP.NET Text Character Counter

Thank you veryy very nice

7/11/2009 12:55 PM | en güzel oyunlar

Gravatar

# re: ASP.NET Text Character Counter

Thank you very much

7/11/2009 12:57 PM | bosch servisi

Gravatar

# re: ASP.NET Text Character Counter

Wait, actually, that wouldn't work. The aforementioned if() statement takes code and chops it off using substring(). And textareas don't have a length attribute that I know of.

7/14/2009 8:40 PM | poker freeware

Gravatar

# re: ASP.NET Text Character Counter

I am grateful to you for this great content.

7/18/2009 9:21 AM | aşk

Gravatar

# re: ASP.NET Text Character Counter

i'm beginner thanks ffpost

9/13/2009 8:37 AM | elite

Gravatar

# re: ASP.NET Text Character Counter

Thanks for post nice to use asp.net

9/13/2009 8:38 AM | elite

Gravatar

# re: ASP.NET Text Character Counter

thanks

10/10/2009 12:57 AM | mucahid1986

Gravatar

# re: ASP.NET Text Character Counter

very usefull thank you

10/11/2009 8:15 AM | remaps

Gravatar

# re: ASP.NET Text Character Counter

Visual Studio 2005 already does everything. I’m working on an ASP.NET 3.5 web site using Visual Studio 2005 until I get Visual Studio 2008. there are some pretty significant language changes in both VB and C# as well as some pretty nice IDE changes, that you just won’t be able to use until or unless you move to 2008.i found this informative and interesting blog so i think so its very useful and knowledge able.so it is great usability and good for us.I would like to thank you for the efforts you have made in writing this article.

12/26/2009 7:02 PM | www.casinoarabic.com/

Gravatar

# re: ASP.NET Text Character Counter

this is a great article

1/28/2010 9:56 AM | Harish Vajja

Gravatar

# re: ASP.NET Text Character Counter

I like the 8:00 weekday starts much better than the 7:00. I think you'll see attendance number rise a bit for these weekday games.

2/25/2010 5:45 AM | oyunlar

Gravatar

# re: ASP.NET Text Character Counter

Is there anything special I would need to do to use the first simple example on more than one textbox? Sorry if that's a dumb question...kind of new to asp

3/16/2010 6:47 PM | Q

Gravatar

# re: ASP.NET Text Character Counter

I don't believe that event.srcElement exists in Firefox. In Firefox I believe that it is event.target. Try
var tbObj = (typeof event.target != 'undefined') ? event.target : event.srcElement;

4/10/2010 10:10 PM | gioco del poker virtuale

Gravatar

# re: ASP.NET Text Character Counter

great article thanks

5/10/2010 7:56 AM | saj

Gravatar

# re: ASP.NET Text Character Counter

thank you so much - my website was almost complete apart from this missing function and i couldnt work out a way to code it then i found your site...

thanks for sharing, it's really appreciated...

p.s. for anyone else doing this visual web will produce errors in the code with onkeyup and onkeydown but it runs fine anyway

5/27/2010 5:55 AM | andrew

Gravatar

# re: ASP.NET Text Character Counter

great... thanks

just one question: is there a way i can get round the problem if the user uses copy and paste...???


5/27/2010 6:07 AM | ross

Gravatar

# re: ASP.NET Text Character Counter

If you set the MaxLength property on the textbox then it won't accept anything above this limit. Or alternatively, you could (and should) be performing additional validation server side (or in Javascript) to truncate text to provide a better user experience.

5/27/2010 7:48 AM | Ross Hawkins

Gravatar

# re: ASP.NET Text Character Counter

Yeah.. Its very useful coding for beginers also me...

Regards,

D.Veeramanikandan

6/15/2010 8:49 AM | Veeramanikandan

Gravatar

# re: ASP.NET Text Character Counter

Thanx Alot

8/20/2010 11:34 AM | caner

Gravatar

# thnx for post very nice informations

thnx for post very nice informations

8/28/2010 1:41 AM | xat sohbet

Gravatar

# re: ASP.NET Text Character Counter

Really Nice post.Great help.Thnx

6/28/2011 4:59 PM | Ram Chapagain

Gravatar

# re: ASP.NET Text Character Counter

This post was EXTREMELY helpful. I am normally a PHP/MySQL Developer but recently had to do some work on a .NET project, this helped me learn some of the anomalies.

Thanks!!!

11/24/2011 3:30 AM | David Botzer

Gravatar

# re: ASP.NET Text Character Counter

Great article, I needed a similar control and I came across this one here jasear.wordpress.com/.../net-webcontrol-textbox... which worked like a charm, I think it uses a similar approach to yours.

1/6/2012 4:50 AM | Terry Jones

Gravatar

# re: ASP.NET Text Character Counter

I want to make this as a User control. AS i need this textarea more than in one my page.
Any help would be greatly appreciated.

Thanks
Saritha.

12/27/2012 10:22 AM | saritha


Post Comment

Title  
Name  
Email
Website / Url
 

Your comment

   
Ensure the word in this box says 'orange':
 
Please add 5 and 8 and type the answer here:





Due to excessive comment spam, all comments are now being moderated. If you're a comment spammer then you're wasting your time here. Your comments will not be published - ever.


About me

My name is Ross Hawkins and I'm a developer, consultant, business owner and writer based in Auckland, New Zealand (pictured below!). My current work revolves around ASP.NET, C#, jQuery, Ajax, SQL Server, and a mix of other Microsoft development technologies.

I also have about 15 years of experience with IBM Lotus Notes/Domino and associated technologies. While Notes/Domino is no longer my primary focus I still like to dabble and keep my skills up to date.

I own and run 2 businesses - Hawkins Consulting Services, and Ignition Development.

Bethells Beach, located in sunny West Auckland, New Zealand




Subscribe

Subscribe to this feed


Search




Popular Content

Troubleshooting WebResource.axd

The .NET 2.0 framework changed the way clientside JavaScript is delivered to the browser. Previously, ASP.NET 1.1 used the aspnet_client directory whereas now 2.0 uses WebResource.axd.

Published on October 8, 2006

Useful IIS Rewrite Rules

The IIS Rewrite Module is easy to use, however for some rules it can take a bit of trial and error to get your syntax correct. After using it for many projects across multiple customers, I thought it might be useful to put up a post containing a small collection of the useful rules I’ve come across, for your copying and pasting pleasure.

Published on January 14, 2014

jQuery Wildcard Selectors - some simple examples

I wrote about jQuery wildcard selector syntax briefly back in 2009, and since then that post has received a lot of views – way more than a post that brief should ever have seen..

Published on October 14, 2011

Microsoft AJAX Extensions: Sys.Debug is null or not an object

One of the breaking changes which was made with the 1.0 release of the Microsoft Ajax Extensions was the renaming of the 'Debug' class to 'Sys.Debug' for reasons of compatiability with other frameworks. Breaking changes like this can often be a source of frustration..

Published on May 22, 2007

Simple ASP.NET Character Counter

A textbox character counter is a pretty simple piece of functionality, and there's a lot of different ways to apply one to your application. The following method is nice and simple, and can be done using only clientside JavaScript if required, or combined with server side code in order to create a more dynamic effect

Published on December 4, 2006

Simple ASP.NET Character Counter - with Master Page Support

A quick update to my previous character counter article adding some changes for those using it with Master Pages.

Published on February 7th, 2009

Adding Tooltips to Gridview Headers

As the title says, this is a very simple but dynamic way of achieving tooltip text on a header column. It's not overly flash, but it's lightweight and quick to implement.

Published on April 15, 2007

SQL Server Web Report Viewer Issues on Windows 2008 Server/IIS7

A fix for another AXD related issue, this time with the SQL Server Web Report Viewer Control which was being served up via IIS7 on a Windows 2008 server.

Published on June 2, 2007
Updated on April 10, 2008





Archives

July, 2014 (1)
June, 2014 (2)
May, 2014 (4)
April, 2014 (1)
March, 2014 (4)
February, 2014 (3)
January, 2014 (4)
December, 2013 (6)
November, 2013 (2)
October, 2013 (3)
September, 2013 (5)
August, 2013 (5)
July, 2013 (3)
June, 2013 (2)
May, 2013 (3)
April, 2013 (2)
March, 2013 (2)
February, 2013 (3)
January, 2013 (5)
December, 2012 (4)
November, 2012 (4)
October, 2012 (3)
September, 2012 (3)
August, 2012 (4)
July, 2012 (1)
June, 2012 (4)
May, 2012 (2)
April, 2012 (4)
March, 2012 (2)
February, 2012 (4)
January, 2012 (3)
December, 2011 (3)
November, 2011 (8)
October, 2011 (9)
September, 2011 (8)
August, 2011 (5)
July, 2011 (4)
June, 2011 (7)
May, 2011 (5)
April, 2011 (3)
March, 2011 (8)
February, 2011 (4)
January, 2011 (3)
December, 2010 (8)
November, 2010 (5)
October, 2010 (6)
September, 2010 (7)
August, 2010 (11)
July, 2010 (12)
June, 2010 (8)
May, 2010 (8)
April, 2010 (4)
March, 2010 (8)
February, 2010 (6)
January, 2010 (12)
December, 2009 (13)
November, 2009 (11)
October, 2009 (12)
September, 2009 (12)
August, 2009 (2)
July, 2009 (7)
June, 2009 (12)
May, 2009 (9)
April, 2009 (9)
March, 2009 (9)
February, 2009 (8)
January, 2009 (7)
December, 2008 (6)
November, 2008 (7)
October, 2008 (9)
September, 2008 (12)
August, 2008 (9)
July, 2008 (6)
June, 2008 (24)
May, 2008 (13)
April, 2008 (16)
March, 2008 (8)
February, 2008 (10)
January, 2008 (1)
December, 2007 (14)
November, 2007 (11)
October, 2007 (11)
September, 2007 (13)
August, 2007 (11)
July, 2007 (5)
June, 2007 (15)
May, 2007 (11)
April, 2007 (9)
March, 2007 (9)
February, 2007 (10)
January, 2007 (8)
December, 2006 (18)
November, 2006 (11)
October, 2006 (14)
September, 2006 (9)
August, 2006 (10)
July, 2006 (4)
June, 2006 (4)
May, 2006 (6)
April, 2006 (3)
February, 2006 (6)
January, 2006 (10)
September, 2005 (2)
August, 2005 (4)

Post Categories

ASP.NET
AJAX
Amusing
NZ
NZ Trains
Notes/Domino
Visual Studio
Web Development
Miscellaneous
Me
Rugby
C#
SQL