ASP.NET 4.0 ClientID Overview

Published Tuesday, January 06, 2009 4:57 PM

Introduction

One of the new features being added to version 4.0 of ASP.NET is the ability to control the client side IDs that are generated by the framework.  Previously the framework would modify the client side IDs to uniquely identify each control.  This some times left you with the ID you defined in markup or sometimes left you with something that looks like this, “ctl00_MasterPageBody_ctl01_Textbox1.”

The Problem

The modification of the client side id property works great to ensure that each element is uniquely identified, however, to anyone that has tried to do any sort of client side scripting this becomes very frustrating. Chances are that if you have worked in ASP.NET for any time at all you have run into this issue.  The problem is that until runtime you do not what the client side ID could be, making it difficult to do any kind of client side scripting.  In addition any modification of the page, adding removing controls, can result in a different client side ID being generated.

Old Solution

Again if you have worked with ASP.NET for any amount of time you know there is a work around for this issue.  Each control has a property called ClientID that is a read only and supplies the unique client side ID.  You can use this in a code behind when dynamically adding scripts, or more commonly use inline code (old ASP style) to supply the value to and client side scripts.

<script type="text/javascript">
    function DoSomething(){
        alert('<%= Control.ClientID %>');
    }
</script>

ASP.NET 4.0 Solution

First off let me start by explaining why we decided to tackle this problem in version 4.0 of the framework.  While we provided a way of supplying the developer with the client side ID, with the growth of client side scripting this solution has become some what hacky.  There is not really a clean way to use this with lots of controls and lots of external script files.  Also it might have had something to do with the developer asking for control over this.  Developers do love to have control of everything, weather they use it or not, it’s just our nature :) The solution that we came up has four ‘modes’ that a user can use giving them everything from existing behavior to full control.  The controls ID property is modified according to the ClientIDMode mode and then used as the client side id.

Modes and what they do

There is now a new property on every control (this includes pages and master pages as they inherit from control) called ClientIDMode that is used to select the behavior of the client side ID.

<asp:Label ID="Label1" runat="server" ClientIDMode="[Mode Type]" />

The Mode Types

  • Legacy: The default value if ClientIDMode is not set anywhere in the control hierarchy.  This causes client side IDs to behave the way they did in version 2.0 (3.0 and 3.5 did not change this code path) of the framework. This mode will generate an ID similar to “ctl00_MasterPageBody_ctl01_Textbox1.”
  • Inherit: This is the default behavior for every control.  This looks to the controls parent to get its value for ClientIDMode.  You do not need to set this on every control as it is the default, this is used only when the ClientIDMode has been changed and the new desired behavior is to inherit from the controls parent.
  • Static: This mode does exactly what you think it would, it makes the client side ID static. Meaning that what you put for the ID is what will be used for the client side ID.  Warning, this means that if a static ClientIDMode is used in a repeating control the developer is responsible for ensuring client side ID uniqueness.
  • Predictable: This mode is used when the framework needs to ensure uniqueness but it needs to be done so in a predictable way.  The most common use for this mode is on databound controls.  The framework will traverse the control hierarchy prefixing the supplied ID with it’s parent control ID until it reaches a control in the hierarchy whose ClientIDMode is defined as static.  In the event that the control is placed inside a databound control a suffix with a value that identifies that instance will also be added to the supplied ID.  The ClientIDRowSuffix property is used to control the value that will be used as a suffix (see samples).  This mode will generate an ID similar to “Gridview1_Label1_0”

Samples

Legacy Mode

Legacy mode is pretty straight forward, it generates a client side ID the way that it had in version 2.0 of the framework.

markup:

<asp :TextBox ID ="txtEcho" runat ="server" Width ="65%" ClientIDMode ="Legacy" /> 

output:

<input id="ctl00_MasterPageBody_ctl00_txtEcho" style="width: 65%" 
name="ctl00$MasterPageBody$ctl00$txtEcho" />

Static Mode

Static is the most basic of all ClientIDMode modes, what you give for the ID is what you get for the client side ID. Once again a warning that if a static ClientIDMode is used inside of a repeated control it is the developer’s responsibility to ensure client side ID uniqueness.

markup:

<asp:TextBox ID="txtEcho2" runat="server" Width="65%" ClientIDMode="Static" />

output:

<input id="txtEcho2" style="width: 65%" name="ctl00$MasterPageBody$ctl00$txtEcho2" />

Predictable Mode

Predictable mode really tackles the heart of the problem.  The framework previously generated it’s unique IDs to prevent ID collisions and the most common place for these types of collisions are inside databound controls.  Predictable mode is really designed to work with databound controls but does not have to.  There is three ways to uses the predictable mode, each one of these is defined through the ClientIDRowSuffix property that specifies the suffix for each instance.  The ClientIDRowSuffix uses values from the control’s datakeys collection, so if the control does not have a datakeys collection this property is not viable.  If this property is not set or is not available the row index will be used in it’s place.

1. With no ClientIDRowSuffix defined, this is also the behavior for databound controls without a datakeys collection e.g. Repeater Control.  Notice that the framework has traversed the control hierarchy and prefixed the ID with the parent’s ID and suffixed the ID with row index.

markup:

<asp:GridView ID="EmployeesNoSuffix" runat="server" AutoGenerateColumns="false" 
ClientIDMode="Predictable" > <Columns> <asp:TemplateField HeaderText="ID"> <ItemTemplate> <asp:Label ID="EmployeeID" runat="server" Text='<%# Eval("ID") %>' /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Name"> <ItemTemplate> <asp:Label ID="EmployeeName" runat="server" Text='<%# Eval("Name") %>' /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>

output:

<table id="EmployeesNoSuffix" style="border-collapse: collapse" cellspacing="0" rules="all" border="1">
    <tbody>
        <tr>
            <th scope="col">ID</th>
            <th scope="col">Name</th>
        </tr>
        <tr>
            <td><span id="EmployeesNoSuffix_EmployeeID_0">1</span></td>
            <td><span id="EmployeesNoSuffix_EmployeeName_0">EmployeeName1</span></td>
        </tr>
        ...
        <tr>
            <td><span id="EmployeesNoSuffix_EmployeeID_8">9</span></td>
            <td><span id="EmployeesNoSuffix_EmployeeName_8">EmployeeName9</span></td>
        </tr>
    </tbody>
</table>

2. With a ClientIDRowSuffix defined, this looks in the control’s datakeys collection for the value and then suffixes the ID with that value.

markup:

<asp:GridView ID="EmployeesSuffix" runat="server" AutoGenerateColumns="false" 
ClientIDMode="Predictable" ClientIDRowSuffix="ID" > <Columns> <asp:TemplateField HeaderText="ID"> <ItemTemplate> <asp:Label ID="EmployeeID" runat="server" Text='<%# Eval("ID") %>' /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Name"> <ItemTemplate> <asp:Label ID="EmployeeName" runat="server" Text='<%# Eval("Name") %>' /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>

output:

<table id="EmployeesSuffix" style="border-collapse: collapse" cellspacing="0" rules="all" border="1">
    <tbody>
        <tr>
            <th scope="col">ID</th>
            <th scope="col">Name</th>
        </tr>
        <tr>
            <td><span id="EmployeesSuffix_EmployeeID_1">1</span></td>
            <td><span id="EmployeesSuffix_EmployeeName_1">EmployeeName1</span></td>
        </tr>
        ...
        <tr>
            <td><span id="EmployeesSuffix_EmployeeID_9">9</span></td>
            <td><span id="EmployeesSuffix_EmployeeName_9">EmployeeName9</span></td>
        </tr>
    </tbody>
</table>

3. With a ClientIDRowSuffix defined, but instead of just one value a compound value will be used.  Exhibits the same behavior as one value but it will suffix both values onto the ID.

markup:

<asp:GridView ID="EmployeesCompSuffix" runat="server" AutoGenerateColumns="false" 
ClientIDMode="Predictable" ClientIDRowSuffix="ID, Name" > <Columns> <asp:TemplateField HeaderText="ID"> <ItemTemplate> <asp:Label ID="EmployeeID" runat="server" Text='<%# Eval("ID") %>' /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Name"> <ItemTemplate> <asp:Label ID="EmployeeName" runat="server" Text='<%# Eval("Name") %>' /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>

output:

<table id="EmployeesCompSuffix" style="border-collapse: collapse" cellspacing="0" rules="all" border="1">
    <tbody>
        <tr>
            <th scope="col">ID</th>
            <th scope="col">Name</th>
        </tr>
        <tr>
            <td><span id="EmployeesCompSuffix_EmployeeID_1_EmployeeName1">1</span></td>
            <td><span id="EmployeesCompSuffix_EmployeeName_1_EmployeeName1">EmployeeName1</span></td>
        </tr>
        ...
        <tr>
            <td><span id="EmployeesCompSuffix_EmployeeID_9_EmployeeName9">9</span></td>
            <td><span id="EmployeesCompSuffix_EmployeeName_9_EmployeeName9">EmployeeName9</span></td>
        </tr>
    </tbody>
</table>

Summary

The ability to fully control the client side IDs that are generated by the framework is a request that has not generated much noise but everyone seems to want it when you mention it.  We believe that we have found a good solution to the request and think that it adds some much need functionality for developer that use lots of client side scripting.  There is an early preview and a walk through of this feature in CTP build that we released at PDC 2008.  For more information and a much more detailed description of this feature read Scott Galloway’s blog post.

by osbornm
Filed under:

Comments

# Web Development Community said on Wednesday, January 07, 2009 1:46 AM

You are voted (great) - Trackback from Web Development Community

# Guy Harwood said on Wednesday, January 07, 2009 3:18 AM

good writeup thanks

# Barry Dahlberg said on Wednesday, January 07, 2009 4:10 AM

Love it, love it.  Now we just need viewstate disabled by default and the world will be a better place.

# ASP.NET 4.0 ClientID Overview | Web Hosting and Domains said on Wednesday, January 07, 2009 5:53 AM

Pingback from  ASP.NET 4.0 ClientID Overview | Web Hosting and Domains

# Paul Cowan said on Wednesday, January 07, 2009 7:33 AM

Look how complicated ClientIDs are.

To think all this trouble for 1 attribute of an element.

I am shockedl

# osbornm said on Wednesday, January 07, 2009 1:16 PM

@Guy Harwood Thank you very much glad you liked it.

@Paul Cowan It becomes very complicated when you start dealing with repeated sections of markup, it was rather shocking to me as well but I think we have a good solution.

# Blackat.NET said on Wednesday, January 07, 2009 5:42 PM

Wow! I think it's not helpful only for Javascript code but for the weight of a page (in terms of bytes).

If I may, I would suggest  a "None" mode type (think a simple Label, a readonly textbox,ecc..) for rendering control without ClientID.

# Vipul Limbachiya said on Thursday, January 08, 2009 7:38 AM

Thts gr8!! I wanted it to be there from long time. Current method sucks, and its a real pain for javascript developers.

# Code Monkey Labs said on Sunday, January 11, 2009 11:59 PM

Pick of the week: Overnight Success – It Takes Years General Fun with Named Formats, String Parsing, &amp; Edge Cases : Just for fun, Phil Haack takes a look at custom string formatting and the challenges that come with it. Dictionary Attacks 101 : Jeff

# ASP.NET 4.0 ClientID Overview - Asp.Net QA Team said on Tuesday, January 13, 2009 12:30 PM

Pingback from  ASP.NET 4.0 ClientID Overview - Asp.Net QA Team

# ReTox said on Tuesday, January 13, 2009 4:02 PM

Do we really need name and id attribute? Isn't id enough?

And what about another mode: controls can incrementally get ID's as they are generated?

EmployeesNoSuffix_EmployeeID_0

becomes

C0

C1

..

..

CX

This way, markup will become much smaller, only 2 characters against 30+ ('EmployeesNoSuffix_EmployeeID_0)

# Scott Galloway said on Tuesday, January 13, 2009 5:19 PM

ReTox, the name attribute is used for postback data...this lets us hook up events / viewstate to the correct control. We did look at the ClientIdMode="None" idea (which would supress ID generation at all) but we'd want to get decent error checking for controls / script which DO need this so it probably won't make 4.0.

Paul_Cowan; yup, IDs are pretty complex...they are so complex as they perform a lot of the state preservation which underlies webforms (the name attribute hooks up to UniqueId which lets us associate posted data with a control in the page hierarchy).

# DotNetShoutout said on Friday, January 16, 2009 1:07 PM

Thank you for submitting this cool story - Trackback from DotNetShoutout

# Thomas goes .NET said on Monday, January 19, 2009 5:06 PM

The upcoming version if ASP.NET, which hasn't really changed in core since the release of ASP.NET 2.0 in 2005, will bring us a change in dealing with client identifiers of controls, resulting in a lot more flexibility, foremost for all developers wor

# Peter Bucher said on Monday, January 19, 2009 6:53 PM

Nachdem mich Alex unbewusst daran erinnert hat, das ich doch die PDC Aufnahmen endlich mal schauen will,

# Stuart Ballard said on Tuesday, March 17, 2009 10:08 PM

Is it possible to plug in a custom ClientID mode? I suppose you can use Static and manually set the ID for everything according to your own rule, but that isn't exactly what I meant.

It'd be nice to be able to implement our *own* version of "predictable" that let the ids come out rather shorter...

# AndrewSeven said on Wednesday, March 18, 2009 11:04 AM

This looks like it has some interesting potential, but what I, and the UI folks I work with, would really like is shorter ids and names in the html so that having a deep NamingContainer structure doesn't bloat the html.

Paulo Morgado has a posting with links to an implementation.

weblogs.asp.net/.../asp-net-futures-control-clientid-generation.aspx

# sandit27 said on Friday, April 24, 2009 4:25 AM

This is a much wanted feature in asp.net..

Thanks for making ClientID writable!

# web hosting nigeria said on Tuesday, May 19, 2009 2:16 PM

when will the said asp.net 4.0 be released. we are all looking forward to it.

# osbornm said on Wednesday, May 20, 2009 12:20 PM

ASP.NET 4 Beta 1 has just been released on MSDN

# Brian said on Sunday, May 24, 2009 5:42 PM

I think controls within data-bound controls should ignore a static setting at page level. Otherwise you are almost certain to have id clashes. They should default to predictable unless overrided specifically and regardless of page setting imo.

# Clint said on Thursday, July 16, 2009 12:19 PM

Finally!!!!! Oh, since ASP.NET came on the scene I've been fighting with this one.

# RAIS HUSSAIN said on Thursday, October 22, 2009 1:20 AM

Really a commentary feature which would play a vital role when working with jquery, and javascript.

# Crazy72 said on Thursday, October 22, 2009 8:05 AM

It could be that Afrigator is not the preferred blog listing for bloggers in these countries. ,

# Loy29 said on Friday, October 23, 2009 6:58 AM

Most importantly, I would like to emphsize that global warming is very much related to every other dire environmental consequence resulting from human lifestyles of overconsumption, pollution, and waste. ,

# Eric said on Monday, October 26, 2009 12:20 PM

A control adapter can also be used to strip off any prefixes and set the controls back to their original values. All this re-naming is incredible overkill, and all this engineering is over-engineering. I can keep the names in my applications unique; that isn't so hard. It is very hard working around my controls being renamed behind my back to solve a problem that I don't have.

# ASP.net said on Tuesday, December 01, 2009 1:22 AM

Μαζί με το .NET 4.0 έρχεται και η επόμενη έκδοση της ASP.NET. Πλέον με την έλευση του MVC υπάρχει ένας

# ASP.NET ClientID & jQuery small trick « Devdimi’s Software Development Log said on Monday, February 08, 2010 1:29 PM

Pingback from  ASP.NET ClientID &amp; jQuery small trick &laquo; Devdimi&#8217;s Software Development Log

# ASP.NET Web Forms bloggers said on Wednesday, March 17, 2010 12:37 AM

Each server-side Web control in an ASP.NET Web Forms application has an ID property that identifies the

# Twitter Mirror said on Thursday, March 18, 2010 8:34 AM

@Moulde Read more about it here: http://weblogs. asp.net /asptest/archive/2009/01/06/asp-net-4-0-clientid

# josephjames said on Tuesday, July 27, 2010 3:01 PM

One of the biggest advantages of this feature is that we can move lot of client script to external file if required.

# Visoft, Inc. Blogs | Book Review – Wrox Professional ASP.NET MVC 1.0 said on Thursday, October 14, 2010 9:21 AM

Pingback from  Visoft, Inc. Blogs | Book Review &#8211; Wrox Professional ASP.NET MVC 1.0

# cool skateboards said on Saturday, December 04, 2010 5:45 AM

"Anyway, I guess I'm a trifle off subject right here?.<br>. Exactly.!. It seems to be like that! Ha, Ha, Ha..."

--------------------------------------------

my website is <a href="zeroskateboards.org/.../birdhouse-birdhouse-complete-hawk-royal-787x316.html">royal skateboard trucks</a> .Also welcome you!

# ipad app store said on Saturday, December 18, 2010 6:25 AM

The world is his who enjoys it.

-----------------------------------

# Visoft, Inc. Blogs | Book Review – Wrox Professional ASP.NET MVC 1.0 said on Monday, December 20, 2010 8:12 PM

Pingback from  Visoft, Inc. Blogs | Book Review &#8211; Wrox Professional ASP.NET MVC 1.0

# Concetta Velazquez said on Thursday, December 23, 2010 12:49 AM

I'm glad you said that!

My regards

<a href="alternativemedicine.org.in/acupuncture.html">Acupuncture institute</a>

# Julius Velasco said on Thursday, December 23, 2010 8:43 AM

I need to hear just what  will say with that...

<a href="http://alternativemedicine.org.in">alternative medicine college</a>

# Bryon Sierra said on Thursday, December 23, 2010 6:36 PM

Great writing, I've been after something like that.

<a href="http://alternativemedicinecourse.com">alternative medicine</a>

# Mae said on Friday, December 24, 2010 2:59 AM

Great post, been after that..

<a href="http://alternativemedicine.org.in">alternative medicine college</a>

# Lula said on Friday, December 24, 2010 5:31 PM

is the greatest!!

Best regards

<a href="www.live-girls-webcam-chat.com/">chat city</a>

# Laverne said on Saturday, December 25, 2010 1:16 AM

Hey , wtf???

-Regards,

<a href="www.cigars-now.com/.../a>

# Stacy Andrade said on Saturday, December 25, 2010 9:29 AM

is the greatest..

Best Regards,

<a href="www.live-girls-webcam-chat.com/">community chat</a>

# Christian said on Saturday, December 25, 2010 7:00 PM

I am wondering  what  says with that!!

Sincere regards,

<a href="www.live-girls-webcam-chat.com/">chat dortmund</a>

# Chang Johnston said on Sunday, December 26, 2010 3:39 AM

, are you sure...

<a href="http://alternativemedicinecourse.com">alternative medicine course</a>

# Lyman said on Sunday, December 26, 2010 2:30 PM

I'm happy you took the time and said that post?!

<a href="www.iconiccigars.com/.../Davidoff-3000-Bx-25.html">Davidoff 3000</a>

# Allen said on Sunday, December 26, 2010 11:36 PM

, that logic is flawed :P

<a href="http://www.findgroomers.com">dog grooming</a>

# Emmett said on Monday, December 27, 2010 4:57 PM

FTW :)

<a href="http://www.SecurityCubed.com">home security system</a>

# Beth said on Tuesday, December 28, 2010 2:47 AM

Hey , really?!

<a href="www.live-girls-webcam-chat.com/webcam-chat-girls.html">leipzig chat</a>

# Toni said on Tuesday, December 28, 2010 4:45 PM

Possibly the BEST page that I have read this week???

Sincerely

<a href="www.cigars-now.com/.../a>

# Jannie Mays said on Wednesday, December 29, 2010 2:43 AM

Great read! I wish you could follow up on this topic???

Sincerest regards

<a href="www.live-boys-webcam-chat.com/.../a>

# Stacey said on Wednesday, December 29, 2010 2:53 PM

rocks.

<a href="www.live-couples-webcam-chat.com/webcam-chat-couples.html">live tv deutschland</a>

# Marcy Gilliam said on Wednesday, December 29, 2010 10:23 PM

I am glad you said that :D

<a href="http://alternativemedicine.org.in">alternative medicine institutes in india</a>

# Latisha Lowe said on Friday, December 31, 2010 4:03 PM

Hey Rupert, I doubt it!?

<a href="http://alternativemedicine.org.in">alternative medicine courses in india</a>

# Roscoe Hughes said on Saturday, January 01, 2011 2:07 PM

I'm very glad that you wrote that =D

-Best Regards

Erin

<a href="http://www.SecurityCubed.com">home alarm systems</a>

# Richie said on Saturday, January 01, 2011 11:01 PM

I need to hear exactly what Logan will change with that!!

<a href="www.iconiccigars.com/.../">Davidoff Series Classic</a>

# Jody said on Sunday, January 02, 2011 3:23 PM

I need to hear just what Gabriela will change with this!!!

<a href="www.cigars-now.com/.../montecristo.html">monte cristo cigars</a>

# Guadalupe Talley said on Monday, January 03, 2011 12:17 AM

Willa is the best :P

Kennith

<a href="www.cigars-now.com/.../a>

# Reinaldo said on Monday, January 03, 2011 6:40 AM

I need to hear exactly what Dorian has to say with this?!

Janet

<a href="www.live-girls-webcam-chat.com/webmaster.html">nebenbei geld verdienen</a>

# Freida said on Tuesday, January 04, 2011 5:46 AM

Great post, I have been after that?

<a href="www.iconiccigars.com/.../Davidoff-Classic-No-1-Bx-10.html">Davidoff Classic No 1</a>

# Jody said on Tuesday, January 04, 2011 4:00 PM

Paulette fail!?

Lynn

<a href="alternativemedicine.org.in/massage_therapy.html">massage therapy school</a>

# Murray Betts said on Wednesday, January 05, 2011 5:30 PM

Great blog post, been after that!!

<a href="alternativemedicine.org.in/acupressure.html">acupressure courses in India</a>

# Anton said on Thursday, January 06, 2011 6:14 PM

Hey Doreen, ROFL!!!

<a href="http://www.cigars-now.com">cigars online</a>

# Donna Manning said on Friday, January 07, 2011 3:57 AM

The greatest paper that I read this year..

Amanda

<a href="www.erotiklobby.com/">sperma pics</a>

# Jordan Myers said on Saturday, January 08, 2011 7:30 AM

Isidro is the best...

<a href="www.iconiccigars.com/.../Davidoff-Puro-d-Oro-Sublimes-Bx-25.html">Davidoff Puro Sublimes</a>

# cool ipad case said on Saturday, January 08, 2011 7:33 AM

-----------------------------------------------------------

Have you ever considered including far more videos to your website posts to keep the readers more entertained? I imply I just go through as a result of the whole write-up of yours and it was fairly beneficial but since I'm more of a visual learner,I located that to become much more helpful. Just my my concept, Good luck.

# Carmela Schroeder said on Saturday, January 08, 2011 4:42 PM

Hey Lily, LOL??

<a href="http://www.findgroomers.com">dog grooming</a>

# Trinidad said on Sunday, January 09, 2011 12:03 PM

Amie rocks??

<a href="http://alternativemedicine.org.in">alternative medicine courses in india</a>

# Gonzalo said on Monday, January 10, 2011 4:07 PM

Could be the most interesting paper I have read this week!

Whitney

<a href="mizarstvo-jereb.si/.../">previjalna miza</a>

# Greta Chung said on Tuesday, January 11, 2011 1:02 AM

Ellis fail :D

<a href="http://webreputationmanagement.info">My Site</a>

# Basil said on Tuesday, January 11, 2011 6:14 AM

Great writing! Maybe you could do a follow up on this topic :P

Tom

<a href="www.ipcounter.net/">webseiten besucherzähler</a>

# Alfonzo Goss said on Tuesday, January 11, 2011 5:19 PM

Maybe the most influential topic I read in my life!!

Derick

<a href="http://alternativemedicine.org.in">alternative medicine institute</a>

# best ipad application said on Tuesday, January 11, 2011 11:31 PM

-----------------------------------------------------------

"I was wondering in case you can be interested in turning into a guest poster on my weblog? and in trade you might place a hyperlink the publish? Please let me know  when you get a probability and I will send you my get in touch with particulars - thanks.  Anyway, in my language, you will discover not considerably great source similar to this."

# Dominique Bustamante said on Wednesday, January 12, 2011 3:02 PM

I need to know  what Alexis will change with that!!!

Leta

<a href="www.asparagus-soap.com/.../scrubs.html">Oatmeal scrubs</a>

# Jeanette Richmond said on Wednesday, January 12, 2011 7:45 PM

Possibly the greatest paper I have read in my life!!!

Raymundo

<a href="www.oregonlngpropertysearch.com/">moncler jackets</a>

# Bernardo Huynh said on Thursday, January 13, 2011 5:40 PM

I need to hear exactly what Ava thinks with this!

<a href="http://www.xxl-odskodnina.si">poravnava</a>

# Jewel Lane said on Friday, January 14, 2011 5:32 AM

Great post, I have been looking for that =D

-Fondest regards

Teri

<a href="mizarstvo-jereb.si/.../">previjalna miza</a>

# Alissa said on Friday, January 14, 2011 5:39 PM

Great writing! I want to see a follow up on this topic?!

Rowena

<a href="www.live-girls-webcam-chat.com/webcam-chat-girls.html">logitech webcam treiber</a>

# Josie said on Saturday, January 15, 2011 7:08 AM

Wilbert, WTF??

Orlando

<a href="www.oregonlngpropertysearch.com/">moncler jacket</a>

# Hugh said on Saturday, January 15, 2011 5:39 PM

Denis, really =D

-Best Regards,

Sebastian

<a href="http://webreputationmanagement.info">brand reputation management</a>

# Travis Macias said on Sunday, January 16, 2011 5:42 AM

I am thrilled you took the time and said that post?!

<a href="www.oregonlngpropertysearch.com/">moncler jacket</a>

# Dante Chandler said on Monday, January 17, 2011 6:24 PM

I am very thrilled you wrote this post :D

My regards,

Molly

<a href="alternativemedicinecourse.com/.../aromatherapy-courses">aromatherapy courses</a>

# Wade said on Tuesday, January 18, 2011 6:16 AM

Hey Mohammed, LOL...

<a href="ezinearticles.com berry diet plan</a>

# Rodolfo said on Tuesday, January 18, 2011 10:43 AM

I'm glad you said that!

<a href="alternativemedicinecourse.com/.../reiki-healing-courses">reiki healing courses</a>

# Troy Reid said on Tuesday, January 18, 2011 7:25 PM

June rocks..

-Kind regards,

Rosie

<a href="http://www.mandarinclassroom.com">learning mandarin</a>

# Mona said on Wednesday, January 19, 2011 7:17 AM

Henrietta FTW =D

<a href="www.netezines.net/caralluma-burn-review">caralluma burn</a>

# Darcy said on Wednesday, January 19, 2011 10:55 PM

Great writing! I want to see a follow up to this topic :P

Leanna

<a href="data-recovery-information.com/">Data recovery information</a>

# Chi said on Thursday, January 20, 2011 10:47 AM

Great read! I wish you could follow up to this topic.

Eric

<a href="www.netezines.net/caralluma-actives-review">caralluma actives</a>

# Justine said on Thursday, January 20, 2011 8:40 PM

Great post! I wish you could follow up on this topic??

-Kindest regards

Aline

<a href="http://www.yutube.si">yutube</a>

# Charity Maurer said on Friday, January 21, 2011 6:25 PM

Great post, I've been waiting for that :P

<a href="http://www.7minutemusclereview.net">7 minute muscle</a>

# Bill said on Saturday, January 22, 2011 1:05 AM

Great read! I want you to follow up on this topic?

Patsy

<a href="www.youtube.com/watch male enhancement</a>

# Lynda Esquivel said on Sunday, January 23, 2011 8:44 AM

Rosella, whatever man!!

<a href="alternativemedicinecourse.com/.../hypnotherapy-courses">hypnotherapy course</a>

# Sung said on Sunday, January 23, 2011 6:35 PM

Great read! You may want to follow up to this topic..

<a href="www.gbbilder4you.com/">gb grüße für jappy</a>

# Ginger said on Monday, January 24, 2011 10:52 AM

Hey Ivan, yea right!

<a href="www.cigars-now.com/.../romeo-y-julieta-cigars.html">{romeo y julieta|romeo y juliet|romeo julieta|romeo & julieta|romeo yjulieta|romeoy julieta|romeo y julietta|romeo y</a>

# Kieth Eubanks said on Monday, January 24, 2011 6:29 PM

Goldie is the best..

<a href="http://www.SecurityCubed.com">home security systems</a>

# Alvin Ponce said on Tuesday, January 25, 2011 4:19 PM

Great read! I want you to follow up on this topic.

<a href="http://www.asparagus-soap.com">Handcrafted Soap</a>

# Ted said on Tuesday, January 25, 2011 7:06 PM

Krista is the best??

Darrin

<a href="www.kuhinje-nokturno.si/">vgradne omare</a>

# Meagan said on Wednesday, January 26, 2011 6:58 AM

This is the most interesting topic I read this year???

<a href="www.netezines.net/buy-repo-cars">buy repo cars</a>

# Kieth said on Wednesday, January 26, 2011 4:49 PM

Hey Tia, I don't think so :D

Maxine

<a href="www.cigars-now.com/.../acid-kuba-kuba-cigars.html">kuba kuba</a>

# Tara Galloway said on Thursday, January 27, 2011 4:43 AM

I am glad you said that :D

Emmanuel

<a href="data-recovery-information.com/hard-drive-data-recovery.html">Hard drive data recovery</a>

# Tripp said on Thursday, January 27, 2011 10:18 AM

Great post, but when I try this I'm getting an Index out of Range error when the page renders.  Seems other people are having the same problem too:

connect.microsoft.com/.../listview-insertitemtemplate-error-when-clientidmode-predictable-and-clientidrowsuffix-is-used

Any ideas?

# Bernadine Barrett said on Thursday, January 27, 2011 7:03 PM

Melanie is the greatest!?

Marguerite

<a href="http://www.zlatorogi.si">ansambel</a>

# Jamal Moran said on Sunday, January 30, 2011 6:47 AM

Great writing! I want you to follow up to this topic =D

Dana

<a href="http://www.gume-oblak.si">gume</a>

# Mariano said on Sunday, January 30, 2011 6:32 PM

I am curious just what Kendall thinks with this!?

<a href="chase6ransel.blogs.experienceproject.com/648630.html">Tas Ransel</a>

# Glenda said on Monday, January 31, 2011 4:16 PM

Great post! I want you to follow up on this topic?!?

Sybil

<a href="www.finansa-credit.com/">finansa credit</a>

# Wilton Simons said on Monday, January 31, 2011 9:56 PM

I'm glad you said that :P

-Kindest Regards,

Matt

<a href="www.houseofrapidcreditrepair.com/">credit repair</a>

# Cheri said on Tuesday, February 01, 2011 9:48 AM

I want to know exactly what Pat says with this?!?

<a href="www.cigars-now.com/.../oliva-cigars.html">oliva cigars</a>

# Virgie said on Tuesday, February 01, 2011 7:40 PM

Mallory ftw.

<a href="www.lida-schlankheitskapseln.com/">lida daidaihua</a>

# Evangeline Sands said on Tuesday, February 01, 2011 11:42 PM

The most amazing read I have read in my life?

Kindest regards,

Marcus

<a href="www.netezines.net/bistro-md-review">bistro md review</a>

# Thaddeus Bledsoe said on Wednesday, February 02, 2011 11:34 AM

Hey Adrienne, lol?!

Stacy

<a href="www.cigars-now.com/.../acid-kuba-kuba-cigars.html">kuba kuba</a>

# Regina said on Thursday, February 03, 2011 10:28 AM

I'm thrilled you said that post?!?

Lee

<a href="www.kuhinje-nokturno.si/">vgradne omare</a>

# Art Goss said on Thursday, February 03, 2011 7:53 PM

I am glad you said that :P

<a href="www.oregonlngpropertysearch.com/">moncler jackets</a>

# Victoria Driscoll said on Friday, February 04, 2011 7:44 AM

Great writing! I want you to follow up on this topic!?

Stephanie

<a href="www.cigars-now.com/.../acid-kuba-kuba-cigars.html">kuba kuba</a>

# Herman Cheng said on Saturday, February 05, 2011 6:28 AM

Hey Vance, whatever dude..

Clair

<a href="www.butikonlinemurah.com/">Butik Online Murah</a>

# Greta said on Saturday, February 05, 2011 4:19 PM

Great post! You might want to follow up to this topic?!?

<a href="http://www.findgroomers.com">dog grooming</a>

# Sebastian Olson said on Sunday, February 06, 2011 4:11 AM

Lela is the best!!!

<a href="http://www.mandarinclassroom.com">learning mandarin chinese online</a>

# Aurelia Ornelas said on Sunday, February 06, 2011 7:05 AM

Hey Constance, and pigs fly??

<a href="mizarstvo-jereb.si/.../">previjalna miza</a>

# Ashley Stacy said on Sunday, February 06, 2011 6:57 PM

I am thrilled you took the time and said this post??

Sofia

<a href="www.camchatladies.com/">russischer chat</a>

# Eduardo said on Monday, February 07, 2011 4:50 AM

I need to know exactly what Shirley has to say with this :D

<a href="www.camchatladies.com/">chat ab 40</a>

# Myra said on Tuesday, February 08, 2011 4:28 PM

Great writing! You may want to follow up to this topic?

<a href="http://www.gume-oblak.si">gume</a>

# Marianne Cantu said on Wednesday, February 09, 2011 4:20 AM

Great writing! I want to see a follow up to this topic?

<a href="www.was-frauen-wollen.com/">sperma schlucken schwanger</a>

# Jarred Potter said on Wednesday, February 09, 2011 2:11 PM

Weldon FAIL???

Sincere regards

Leann

<a href="www.sumobulldogs.com/">bulldog puppies for sale</a>

# Trey Whitley said on Wednesday, February 09, 2011 7:56 PM

Alba, that logic is flawed?

Kindest Regards

Lawrence

<a href="www.was-frauen-wollen.com/">sperma steigerung</a>

# Stan Mayo said on Friday, February 11, 2011 4:21 PM

Great post! You should definitely follow up to this topic!?!

-Thank You,

Jody

<a href="http://www.asparagus-soap.com">Homemade Soap</a>

# Randal said on Saturday, February 12, 2011 2:47 AM

Max, and pigs fly =D

Thanks,

Tina

<a href="http://url.com">keyword one</a>

# Terence Dempsey said on Saturday, February 12, 2011 2:39 PM

Elwood FAIL!!

<a href="www.oregonlngpropertysearch.com/">moncler jackets</a>

# Matthew Barnes said on Saturday, February 12, 2011 5:49 PM

Great read! I wish you could follow up on this topic.

<a href="www.kredite-einfach.com/">kredite ohne bonitätsprüfung</a>

# Buddy said on Sunday, February 13, 2011 5:41 AM

Hey Erma, and pigs fly.

<a href="www.oregonlngpropertysearch.com/">moncler jacket</a>

# Justine Rucker said on Monday, February 14, 2011 8:29 AM

The top paper that I read this week??

<a href="www.kuhinje-nokturno.si/">vgradne omare</a>

# Brad Baker said on Monday, February 14, 2011 6:20 PM

I'm glad you said that??

<a href="www.was-frauen-wollen.com/">sperma sichtbar machen</a>

# Alissa said on Tuesday, February 15, 2011 12:48 PM

The top post that I read ever??

<a href="alternativemedicinecourse.com/.../yoga-therapy-courses">yoga therapy course</a>

# Brendan Bradley said on Tuesday, February 15, 2011 8:59 PM

Maynard FAIL?!?

Yours Truly,

Jesse

<a href="www.was-frauen-wollen.com/">balanitis durch sperma</a>

# Herman Wilkins said on Wednesday, February 16, 2011 8:51 AM

Winnie is the greatest!

Best regards

Jamie

<a href="www.mystogie.com/.../a>

# Beverley said on Wednesday, February 16, 2011 6:42 PM

Tami, WTF :P

-Kindest Regards,

Margarito

<a href="www.was-frauen-wollen.com/">sperma bestellen</a>

# Jacquelyn Ocampo said on Thursday, February 17, 2011 5:39 AM

Tommie, I don't think so :D

Ernie

<a href="www.butikonlinemurah.com/">Butik Online Murah</a>

# Isiah Avalos said on Friday, February 18, 2011 10:46 AM

Great post, I've been waiting for that!?!

Willis

<a href="www.kuhinje-nokturno.si/">vgradne omare</a>

# Ola said on Saturday, February 19, 2011 9:20 AM

Great post! You may want to follow up on this topic :P

<a href="www.butikonlinemurah.com/">Butik Online Murah</a>

# Paulette Lucero said on Saturday, February 19, 2011 7:39 PM

I'm very happy that you said that!?

Best Regards

Roslyn

<a href="http://www.SecurityCubed.com">home security system</a>

# Mai said on Sunday, February 20, 2011 7:31 AM

I am curious exactly what Amie thinks about this =D

<a href="www.mystogie.com/.../oliva-cigars.html">oliva cigars</a>

# Spencer said on Sunday, February 20, 2011 5:22 PM

Ernesto ROCKS?!

Cynthia

<a href="http://www.SecurityCubed.com">home security system</a>

# ASP.NET 4 ClientId – I’ll do it myself thanks ! | MS-Joe (Joe Stagner) said on Thursday, February 24, 2011 1:33 PM

Pingback from  ASP.NET 4 ClientId &#8211; I&#8217;ll do it myself thanks ! | MS-Joe (Joe Stagner)

# Asp.net: jQuery and ClientID « Coding Still said on Sunday, March 13, 2011 5:14 PM

Pingback from  Asp.net: jQuery and ClientID &laquo;  Coding Still

# menaceMort said on Tuesday, March 22, 2011 6:11 AM

I've been working with asp.net since 2002 and previously with classic asp. This hilites what an ugly framework asp.net is in the first place. At a glace asp.net seems to abstract away many problems with its component model but when you do some serious programming you'll have to come up with the most akward solutions to do simple things :[ This makes you want classic asp with its leanness and "full" control over the output stream back! Need I say CustomWeb controls and postback event handling, anyone?

# awning crank handle said on Monday, April 18, 2011 11:17 AM

oewje awning zdojx

# best jailbroken iphone apps said on Wednesday, April 27, 2011 8:19 AM

ohhh good data

--------------------------------------------------------------------        

Bioengineering

# vzuaerap said on Thursday, May 12, 2011 2:38 AM

<a href=www.hermesbirkincheap.com/>Hermes Birkin</a>

# qbkwaofg said on Tuesday, May 24, 2011 3:37 PM

www.louis-vuitton-handbags-discount.com -  Louis Vuitton Discount Handbags

# rokhjhme said on Friday, May 27, 2011 5:03 AM

www.hermesbirkincheap.com - Hermes Birkin

# cheap software said on Thursday, June 02, 2011 7:23 AM

www.julysoftware.com -cheap software

# kkhwfueb said on Sunday, June 05, 2011 3:58 AM

www.reallouisvuittonhandbags.com - Real Louis Vuitton Handbags

# pqjbwrjb said on Sunday, June 05, 2011 3:55 PM

www.reallouisvuittonbags.com - real louis vuitton bagsreal louis vuitton bags

# #geugkbetscnnick[YYIYKKIYYIYI] said on Sunday, June 05, 2011 11:42 PM

www.louisvuittonknockoffs.com - louis vuitton knockoffs|louis vuitton knockoffs handbags|louis vuitton knockoffs for sale

# jpvlibqg said on Wednesday, June 08, 2011 2:06 AM

www.louis-vuitton-handbags-cheap.com - louis vuitton handbags cheap

# aeugevgj said on Wednesday, June 08, 2011 8:54 AM

www.hermesbirkincheap.com - Hermes Birkin|Hermes Birkin Handbags

# Irfan Ranjha said on Tuesday, June 14, 2011 7:04 AM

Ahh, thanks God, but i dont know why after giving so much pain such changes are made, as its very very common every developer need some client side scripts.

# Von Mazzillo said on Friday, July 01, 2011 8:44 PM

The following absolutely an excellent internet website you have visiting this site. The matter is quite useful furthermore to direct clear. Ecstatic to understand to read a different recommendation of your blog next time.

# Fabio Milheiro said on Wednesday, August 24, 2011 6:36 AM

Now I got it! Thanks!

# vaishali jain said on Tuesday, August 30, 2011 6:29 AM

Clear explanation about the client id which is really confusing when the control is placed in a page which has a masterpage or a usercontrol.

# AsmA qureshi said on Thursday, September 15, 2011 3:41 AM

Hi ,

I got it! Thanks!

# womans winter boots said on Sunday, September 25, 2011 10:43 PM

I’m glad that you shared this helpful information with us. Please keep us informed like this. Thanks for sharing.

# Why IE does not refresh the page after a JS call to a click button? - Programmers Goodies said on Wednesday, September 28, 2011 5:47 AM

Pingback from  Why IE does not refresh the page after a JS call to a click button? - Programmers Goodies

# Skippetuibisp said on Saturday, December 17, 2011 1:06 AM

[url=http://www.canadauggsale.eu]uggs on sale[/url]

 ï»¿I must admit I get been a complete huge fan eliminate so haven?¡¥t actually bought one with his supplies yet. Simply because within just this past she has given away such a great deal regarding free I haven?¡¥t needed of!

,[url=http://www.uggscanadaca.eu]uggs canada[/url]

 ï»¿These resources will pay you a good commission for anyone you send into their website while the customer makes any purchase.  You can find  plenty along with creative how does somebody make additional revenue other than basically exchanging your own art work.

 ï»¿[url=http://www.uggsonireland.eu]uggs[/url]

 ï»¿Must afford boosting up the visibility off this process sites take advantage of all social bookmarking as well as the permit the item in the market to make my job for the purpose of you. Certain is without a doubt each great device to allow them to implement search engines to get each of our advantage from your incredible business.

 www.uggsbootssnewzealand.com

# Mobile Phone Deals said on Tuesday, January 10, 2012 5:38 PM

Many Thanks for this useful information

Leave a Comment

(required) 
(required) 
(optional)
(required)