Review of QuickWebSoft.com's ColorPicker Web Control

Published 31 August 05 03:00 PM | Scott Mitchell

At the beginning of this month I started work on a project that allowed the users to customize the appearance of the site to a great degree. One such customization was in the colors the site used: background colors, menu colors, text colors, popup box colors, and so on. Rather than limiting the user from picking from a drop-down list of color names, or forcing them to know the hex color comibnation (which, honestly, only a Web developer would even know about), my client wanted users to be able to select a color via a color picker control.

The windows world abounds with color picker controls, but there are fewer ASP.NET-based color pickers, as my research found. I started by asking a question on the ASP.NET Forums: Recommend a Color Picker ASP.NET Web Control? I got a couple of suggestions, but wasn't too thrilled with either of them. Eventually I found QuickWebSoft.com's ASP.NET ColorPicker control. My client liked the functionality, cross-browser support (tested on IE, Opera, and FF for Windows and Safari for Apple), and price ($49 for a single server license), so I ended up using that particular color picker control. (There are some live demos you can try out at http://www.quickwebsoft.com/ColorPicker/ColorPicker.aspx#Demo.)

Overall, the ColorPicker control was easy to setup and start using. It took just a minute or two to get the requisite resource files copied to the aspnet_client folder, move the assembly to the /bin directory, and add the control to the VS.NET Toolbox. Once that was accomplished, I could simply drag and drop the control onto the page and determine the value entered by the user through the ColorName, ColorValue, and/or Color properties of the control. Couldn't be easier.

There were a couple of downsides to the control, however, that were quickly apparent. One issue was that the Enabled property didn't work; that is, even when the control's Enabled property was set to False, the user could still pick a color. Another issue was that each ColorPicker instance emitted the client-side JavaScript it needed, even though this script was identical for all ColorPickers on the page that used the same palette data. This script was around 10 KB. On one page I had 12 color pickers, which led to over 120 KB of client-side script, of which only about 10 KB was unique!

I emailed QuickWebSoft.com's support with these two issues and they acknowledged the problems and informed me that these issues would be fixed in a future version. What was highly unexpected, however, is that this next version was sitting in my Inbox the next morning. I must have sparked an all night coding session with my requests! :-) (One thing to be a tad wary of, but you can tell that this is, likely, a one-man shop here. The support emails usually take about 12 hours to hear back from and there are no online support forums where you can ask questions or where answers to your questions may already reside...)

The ColorPicker works well for simple use cases, but in more involved cases I had to exert quite a bit of effort to get it to 'play nice.' For example, the ColorPicker has a server-side event, ColorPicked, that you can have fired when a color is selected. However, if you want to have some client-side action take place when a color is picked you're pretty much on your own. Sure, there's a property that you can set that will run any JavaScript script you set to it, but you still have to write the client-side script that reads or sets the color value, which, while not terribly complex, still took a good half hour to hammer out correctly. Another gripe is that the palette files ColorPicker ships with or can be downloaded from the website are only the 216 web safe colors (or less!). For this application I wanted to allow users to pick from a wider array of colors, much like the standard MS Office color picker, where there's a fine gradient. Sure, you can create your own palette files, but this project's time and budget did not account for that. One last gripe - there isn't an option to include a textbox into which a user can just type in a color. For example, if a user knows that their logo's background color is, say, #AA7601, they may want to just type that in rather than having to peck through the color picker (or, worse yet, if the color isn't available in the ColorPicker's palette). The main challenge in adding a textbox was wiring up all the client-side events to ensure that after entering a value in the textbox, the color would be displayed properly, and when picking a color from the color picker, the color value would be inserted automatically into the textbox.

Overall, I do recommend QuickWebSoft.com's ColorPicker if you need a simple color picker control for a very affordable price. If you need to do any great deal of customization of your color picker, or need to be able to tinker around with it in a client-side setting, you might want to take sufficient time trying out this and other options before settling on one.

Filed under:

Comments

No Comments

Leave a Comment

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

Archives

My Books

  • Teach Yourself ASP.NET 4 in 24 Hours
  • Teach Yourself ASP.NET 3.5 in 24 Hours
  • Teach Yourself ASP.NET 2.0 in 24 Hours
  • ASP.NET Data Web Controls Kick Start
  • ASP.NET: Tips, Tutorials, and Code
  • Designing Active Server Pages
  • Teach Yourself Active Server Pages 3.0 in 21 Days

I am a Microsoft MVP for ASP.NET.

I am an ASPInsider.