我需要扩展用于在mouseOver上为DropDown项目添加toolTip的DropDownList。
如果(Dropdown size比Dropdownlist item更小,那么它将有助于将项目作为工具提示查看)
为此我才知道,我们需要在VS2008中创建ServerControl项目,但我不知道如何添加像ItemToolTip这样的属性
它需要在该类中作为(DataTextField,下拉列表中的DataValueField )工作。
告诉我任何类似于我的要求的ServerControl项目样本的链接。
我尝试使用下面的代码,但dropdown属性本身不起作用。
命名空间DropDownItemToolTip
{
[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);
}
}}
给我发送任何示例项目链接,它是这样做的..
发布于 2009-11-27 20:13:05
为什么要扩展下拉列表?试着添加一个Title标签,对吗?
试试这段代码
<select>
<option title="this is a long text">Long text</option>
</select>它将在鼠标悬停时显示this is a long text工具提示。
发布于 2009-11-28 14:54:38
试试这个:
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));
}
}
}
}
}https://stackoverflow.com/questions/1808378
复制相似问题