ASP.NET Custom Server Controls: Dynamically Expandable Round Cornered Button
(Page 1 of 7 )
This article introduces you to creating your own dynamically expandable round cornered button control in ASP.NET.
A downloadable file for this article is available
here.
The sample downloadable solution (zip) is entirely developed using Visual Studio.NET 2003 Enterprise Architect on Windows Server 2003 Standard Edition. But, I am confident that it would work with other versions of Windows (which support .NET 1.1) as well.
Introduction
Everyone knows that ASP.NET already contains a flexible Table control to design round cornered boxes with ease. But, what if we wanted to convert that “table” to a button, which supports “postback” and other stuff? That forces us to examine the development of a new “dynamically expandable round cornered button.”
In my sense, “dynamically expandable” means the button has to expand (either vertically or horizontally) based on the content we provide to the button. It should be supported even at design-time. “Round cornered” means the button should accept different graphic images at all sides and corners to make it look like it is “round cornered.” And finally, it should support “posback”, “viewstate” and other stuff.
In my previous articles, I already introduced how to design and implement our own Custom Server Control from the scratch. If you are quite new to the concept of Custom Controls in ASP.NET, I suggest you to go through my previous articles before going through this article. This will also be similar to my “round cornered box control” article (within the same series) in several aspects, but with some modifications.
Even though I could use System.Web.UI.Control as the base class for my button control, I selected System.Web.UI.WebControls.WebControl as the base class, just because of the convenience and ease. Apart from all of these, we will also look into “<EditorAttribute>” available in ASP.NET.
System.Web.UI.Control class has only few rendering methods which could be overridden. This gives us less flexibility in developing the custom control, when we compare with the rendering methods available in System.Web.UI.WebControls.WebControl class. Of course, some of the most important properties (like width, height, font, and so on) of the WebControl class get inherited to our control.
In this scenario, I even exposed nine properties to fix border (rounded) images for our control. Before talking too much about the control, let us go through the implementation first. We will create a Visual Studio.NET 2003 solution throughout this article with more than one project.
Next: Exposing properties for every side (including corners) of button >>
More ASP.NET Articles
More By Jagadish Chaterjee