Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / ASP.NET / Building Controls / February 2007

Tip: Looking for answers? Try searching our database.

Custom Image Button help.

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
CK - 06 Oct 2006 00:29 GMT
Hello All,
I am trying to extend the default asp:ImageButton to include an image for an
enabled state and a second image for a disabled state.  I currently did this
by extending the ImageButton class in a custom control, creating a property
for each of these images (EnabledImageUrl, DisabledImageUrl) and then
overrode the Enabled property to change base.ImageUrl respectively.  I am
also trying to use Themes with this web site.  The problem is (I can tell by
looking in the page source) that when the image urls are stored in the
custom control they are not being resolved to the actual path of the images
(they are "image\<picName>.gif" in the skin file).  Also, when the ImageUrl
is set on the base class it is also not being resolved to the actual (theme)
path.  I was wondering if there is something I have to do with my custom
control, some convenience method I can run to resolve these paths or if
there is a specific point in the ASP page lifecycle that I have to plug in
to in order for these paths to get resolved by default.
public class MultiImageButton : ImageButton
   {
       private string _enabledImageUrl;
       private string _disabledImageUrl;
       public bool Enabled
       {
           get { return base.Enabled; }
           set{
               base.Enabled = value;
               base.ImageUrl = value ? _enabledImageUrl :
_disabledImageUrl;
           }
       }

       public string EnabledImageUrl
       {
           get { return _enabledImageUrl; }
           set{
              _enabledImageUrl = value;
               if (Enabled)
                   base.ImageUrl = Page._enabledImageUrl;
           }
       }

       public string DisabledImageUrl
       {
           get
           {
               return _disabledImageUrl;
           }
           set
           {
               _disabledImageUrl = value;
               if (!Enabled)
                   base.ImageUrl = _disabledImageUrl;
           }
       }
   }
Cowboy (Gregory A. Beamer) - 06 Oct 2006 21:18 GMT
The client side url is resolved in the base class with the method
ResolveClientUrl:

base.ResolveClientUrl(base.ImageUrl);

Signature

Gregory A. Beamer
MVP; MCP: +I, SE, SD, DBA
http://gregorybeamer.spaces.live.com

*************************************************
Think outside of the box!
*************************************************

> Hello All,
> I am trying to extend the default asp:ImageButton to include an image for
[quoted text clipped - 56 lines]
>        }
>    }
intrader - 25 Feb 2007 01:54 GMT
> Hello All,
> I am trying to extend the default asp:ImageButton to include an image for an
[quoted text clipped - 49 lines]
>         }
>     }

I am wondering why you are doing this at the server. The usual way to do
this is to handle it at the client without a trip to the server (you do
need to send the two images to the client - preload them)

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.