I’ve been working on a project available at for http://www.codeplex.com/nucleo.  It’s a project I’ve had in the works for a while, and it’s finally coming to fruition.  So I am starting to create blog posts explaining features about these controls.  I am really excited about this button because I think it offers you more than what other control vendors offer you (at least the ones I seen, because I don’t know every control suite out there).  Anyway, my button comes with some nice features.

First, it has a DisableUntilPageLoad property that will disable the button until page load scripts have run.  This is a useful feature I found in Professional ASP.NET AJAX from Wrox that really does make sense.  So I added it into my button control, which simply can be enabled via:

<n:Button … DisableUntilPageLoad=”True” />

And now the button doesn’t enable until page loads on the client.  Note: It’s up to you to ensure JavaScript works :-;  Next, we have the ability to disable the button when it clicks by setting the DisableOnFirstClick property to true.  This disables the button permanently, but can be re-enabled using the enabled client-side property.  The DisableOnFirstClickTimeout specifies a timeout in seconds, which will be used to re-enable a button.  This is a nice feature because often developers want to prevent double-clicks from happening, yet still ensure that they can click the button.  Using these setting:

<n:Button DisableOnFirstClick=”True” DisableOnFirstClickTimeout=”300″ />

This disables the button on click, then re-enables it at 300 milliseconds.  The button does support all the traditional IButtonControl implementations, but doesn’t use the ASP.NET implementation; rather, I use a cleaner approach that can be used on both the server and the client.

The button also specifies a mode to render in, whether link button, push button, or image button.  This mode is then rendered appropriately.  This then requires only one button instance, and can be changed on the server.  It currently cannot be changed on the client, but should be something I implement in the future.

This are some of the Button control’s available offerings.  More to come soon on some of the other controls.