Creating a Custom Tooltip Ajax Extender Control
page 3 of 7
by Abdulla Hussein AbdelHaq
Feedback
Average Rating: 
Views (Total / Last 10 Days): 34345/ 46

Tooltip Extender Variables & Properties

Let us get back now for our new tool tip extender. We want to make this Tooltip look different than the regular Tooltip; i.e. page developer would customize the tool tip background color, change font name/color, and it will be better if we can delay the disappearing time of the tool tip.

Look at Figure 2 which illustrates what the extender will look like after finishing this article.

Figure 2

fig2

Now let us start building the Tool tip extender. As I mentioned, the ASP.NET Ajax Control Project Template will automatically create three files: (MyExtenderToolTipBehavior.js, MyExtenderToolTipDesigner.vb, and MyExtenderToolTipExtender.vb).

Listing 6: Tooltip Extender Class

<Designer(GetType(MyExtenderToolTipDesigner))> _
    <TargetControlType(GetType(WebControl))> _
    Public Class MyExtenderToolTipExtender
        Inherits ExtenderControlBase
        <ExtenderControlProperty()> _
           <DefaultValue("")> _
           Public Property ToolTipText() As String
            Get
                Return GetPropertyValue("ToolTipText""")
            End Get
            Set(ByVal value As String)
                SetPropertyValue("ToolTipText", value)
            End Set
        End Property
        <ExtenderControlProperty()> _
          <DefaultValue(200)> _
          Public Property ToolTipWidth() As System.Web.UI.WebControls.Unit
            Get
                Return GetPropertyValue("ToolTipWidth", Unit.Pixel(200))
            End Get
            Set(ByVal value As System.Web.UI.WebControls.Unit)
                SetPropertyValue("ToolTipWidth", value)
            End Set
        End Property
 
        <ExtenderControlProperty()> _
           <DefaultValue("#5E8DD0")> _
           Public Property ToolTipBgColor() As String
            Get
                Return GetPropertyValue("ToolTipBgColor""#5E8DD0")
            End Get
            Set(ByVal value As String)
                SetPropertyValue("ToolTipBgColor", value)
            End Set
        End Property
        <ExtenderControlProperty()> _
                <DefaultValue("Verdana")> _
                Public Property ToolTipFontName() As String
            Get
                Return GetPropertyValue("ToolTipFontName""Verdana")
            End Get
            Set(ByVal value As String)
                SetPropertyValue("ToolTipFontName", value)
            End Set
        End Property
        <ExtenderControlProperty()> _
              <DefaultValue("White")> _
              Public Property ToolTipFontColor() As String
            Get
                Return GetPropertyValue("ToolTipFontColor""White")
            End Get
            Set(ByVal value As String)
                SetPropertyValue("ToolTipFontColor", value)
            End Set
        End Property
        <ExtenderControlProperty()> _
        <DefaultValue(250)> _
        Public Property DisappearDelay() As Integer
            Get
                Return GetPropertyValue("DisappearDelay", 250)
            End Get
            Set(ByVal value As Integer)
                SetPropertyValue("DisappearDelay", value)
            End Set
        End Property
End Class

Listing 6 is the Tool tip extender class; you can see many properties and attributes in there. Since it is a tool tip at the end, it should be targeting all web controls types. Therefore, the TargetControlType(GetType(WebControl) attribute will be used to allow our extender to target any web control in the page. This attribute will insert all the extender properties as new collection properties in the target control.

The DisappearDelay property will delay the disappearing time of the tool tip in milliseconds, the default value attribute is set to be 250 milliseconds.

Now we need to set the position of the tool tip to be an absolute position, the z-index should be equal to 100, and that will occur in the embedded Style Sheet file, as you can see in Listing 7.

Listing 7

.tooltipdiv{
position:absolute;
padding: 2px;
border:1px solid black;
font-size:12px;
font-weight:normal;
line-height:18px;
z-index:100;
}

You should add the style sheet file to the extender web resources assembly, as in Listing 8.

Listing 8

<Assembly: System.Web.UI.WebResource("MyExtenderToolTip.MyExtenderToolTipCss.css", 
"text/css")>

In addition, we need to add it to the client cascade style sheet resources, as you see in Listing 9.

Listing 9

<ClientCssResource("MyExtenderToolTip.MyExtenderToolTipCss.css")>

The client-side logic will be located in the behavior JavaScript file, discussed in the next section.


View Entire Article

User Comments

Title: ytu   
Name: tyu
Date: 2012-10-11 1:17:44 AM
Comment:
rtyu
Title: Mr   
Name: Mohar
Date: 2010-07-26 2:29:36 PM
Comment:
Not working for me it's giving following error:
System.InvalidOperationException: The TargetControlID of '' is not valid. The value cannot be null or empty.
Title: Mr.   
Name: Raju Balagam
Date: 2010-04-15 5:41:39 AM
Comment:
This artical helps to understand the cutom tooltip using ajax.....
Title: Good article   
Name: shailesh arban
Date: 2009-06-17 5:26:37 AM
Comment:
I gone through this article,It's very good article for those who wants to create own ajax extender.
Title: Re: 1 help ..   
Name: Abdulla [The Author]
Date: 2008-11-14 12:27:40 PM
Comment:
if you download the source code, you will find a javascript file which is the responsible for creating the tooltip, you need to change the horizontal/vertical offset in the initializeBase method into :
this.vertical_offset="-30px"
this.horizontal_offset="150px"

and if you want your code to be your more professional, you need to pass the offset of the webcontrol and calculate it with the div offset and here you will got the proper position.
Title: 1 help ..   
Name: sandeep ramani
Date: 2008-11-14 10:39:57 AM
Comment:
In above article...how i can change the position where tooltip is apearing..
i want to display tooltip not below the textbox ..but parallel to it,, so how to set that.. please tell me abt it..
Title: great article..   
Name: sandeep ramani
Date: 2008-11-14 10:20:12 AM
Comment:
this is very useful article..

it helped me a lot..

thank u very much..
Title: Good Article   
Name: Pavan
Date: 2008-10-08 2:07:31 AM
Comment:
It is a very good articles. I prefer the people to check this article before creating any ajax extenders. Thanks for the authors and contributers
Title: ms   
Name: VS2005
Date: 2008-08-08 10:13:10 AM
Comment:
Great job!!! Thank you!
Title: Re: uh. . VB/VWDEE 2008   
Name: Abdulla AbdelHaq
Date: 2008-08-06 9:01:46 AM
Comment:
Yes .. It is the same thing.
Actually, developing new Ajax Extender using VS 2008 is much easier than using VS 2005.
Title: uh. . VB/VWDEE 2008   
Name: Kevin Tweedy (KevInKauai)
Date: 2008-08-05 4:57:42 PM
Comment:
Interesting extension, but for those of us who only use VWD EE 2008 is it possible to have the implementation of this as a "done" package?

tia ... alohas ... KevInKauai
Title: Very Good   
Name: Vagueraz
Date: 2008-08-01 3:11:23 AM
Comment:
It's agreat article indeed ...
Go on Abdulla :)






Community Advice: ASP | SQL | XML | Regular Expressions | Windows


©Copyright 1998-2024 ASPAlliance.com  |  Page Processed at 2024-04-24 1:28:51 PM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search