One final thing that I mentioned, but did not explain thoroughly, was why I concatenated the ClientID of the control to many different areas. Even though concatenating the ClientID is not necessary in most instances, it is still safe practice. If DHTML function names are generic enough, the possibility exists for two completely different controls to register the same function. The chances are slim to none, but if it would happen, then there would be some major debugging issues.
Also, although this control doesn’t have any extended properties that can be set, it does have the possibility to add quite a few. Different properties like setting the color of the label can easily be added. Another nice addition would be the ability to set a blank value at the very top, especially since the purpose of the control is to mimic a Microsoft Access ComboBox. Validation would also be a nice addition that could be done on the client side of things.
Hopefully, this article was very helpful in understanding the basics behind a server control. For further reading, MSDN provides great documentation. There are also a few books out there that discuss the creation of server controls, although all the needed information is available from MSDN.