首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展项目ToolTip、Asp.net、C#的DropDown

扩展项目ToolTip、Asp.net、C#的DropDown
EN

Stack Overflow用户
提问于 2009-11-27 20:07:11
回答 2查看 1.8K关注 0票数 0

我需要扩展用于在mouseOver上为DropDown项目添加toolTip的DropDownList。

如果(Dropdown size比Dropdownlist item更小,那么它将有助于将项目作为工具提示查看)

为此我才知道,我们需要在VS2008中创建ServerControl项目,但我不知道如何添加像ItemToolTip这样的属性

它需要在该类中作为(DataTextField,下拉列表中的DataValueField )工作。

告诉我任何类似于我的要求的ServerControl项目样本的链接。

我尝试使用下面的代码,但dropdown属性本身不起作用。

命名空间DropDownItemToolTip

{

代码语言:javascript
复制
[DefaultProperty("Text")]
[ToolboxData("<{0}:ServerControl1 runat=server></{0}:ServerControl1>")]

public class ServerControl1 : System.Web.UI.WebControls.DropDownList 
{

    [Bindable(true)]
    [Category("Appearance")]
    [DefaultValue("")]
    [Localizable(true)]
    public  string Text1
    {
        get
        {
            String s = (String)ViewState["Text"];
            return ((s == null) ? "[" + this.ID + "]" : s);
        }

        set
        {
            ViewState["Text"] = value;
        }
    }

    protected override void RenderContents(HtmlTextWriter output)
    {
        output.Write(Text1);
    }

}

}

给我发送任何示例项目链接,它是这样做的..

EN

回答 2

Stack Overflow用户

发布于 2009-11-27 20:13:05

为什么要扩展下拉列表?试着添加一个Title标签,对吗?

试试这段代码

代码语言:javascript
复制
<select>
    <option title="this is a long text">Long text</option>
</select>

它将在鼠标悬停时显示this is a long text工具提示。

票数 0
EN

Stack Overflow用户

发布于 2009-11-28 14:54:38

试试这个:

代码语言:javascript
复制
using System.Collections;
using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Foo
{
    [ToolboxData("<{0}:DDL runat=\"server\" />")]
    public class DDL : DropDownList
    {

        [Category("Data"), DefaultValue("")]
        public string DataToolTipField
        {
            get { return (string)(ViewState["DataToolTipField"] ?? string.Empty); }
            set { ViewState["DataToolTipField"] = value; }
        }

        protected override void PerformDataBinding(IEnumerable dataSource)
        {
            base.PerformDataBinding(dataSource);

            string dataToolTipField = this.DataToolTipField;

            if (!string.IsNullOrEmpty(dataToolTipField))
            {
                IEnumerator enumerator = dataSource.GetEnumerator();
                for (int i = 0; enumerator.MoveNext(); i++)
                {
                    this.Items[i].Attributes.Add("title", (string)DataBinder.GetPropertyValue(enumerator.Current, dataToolTipField));
                }
            }
        }

    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1808378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档