刚才一位网友在SKYPE问及,如何给asp.net的DropDownList控件添加ToolTip(title)属性。
Insus.NET回复他说,同这样的问题,在google或baidu应该很多。他却回答说,一不想使用Javascript,二真正的是想看看你的解决方法。
下面是Insus.NET实现的效果:
实现过程,只是为DropDownList控件写OnDataBound事件,
{
DropDownList ddl = (DropDownList)sender;
for (int i = 0; i < ddl.Items.Count; i++)
{
//当然你可以在这里为每个item写上其它的显示的内容。
ddl.Items[i].Attributes.Add("title", ddl.Items[i].Text);
}
}
完整的程序,xxx.aspx:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="DropDownList1" runat="server" OnDataBound="DropDownList1_DataBound">
</asp:DropDownList>
</div>
</form>
</body>
</html>
xxx.aspx.cs:
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Data_Binding();
}
}
private void Data_Binding()
{
DropDownList1.DataSource = Datas();
DropDownList1.DataTextField = "value";
DropDownList1.DataValueField = "key";
DropDownList1.DataBind();
}
protected void DropDownList1_DataBound(object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
for (int i = 0; i < ddl.Items.Count; i++)
{
//当然你可以在这里为每个item写上其实的显示的内容。
ddl.Items[i].Attributes.Add("title", ddl.Items[i].Text);
}
}
private Dictionary<int, string> Datas()
{
Dictionary<int, string> Dd = new Dictionary<int, string>();
Dd.Add(1, "米饭");
Dd.Add(3, "紫菜汤");
Dd.Add(4, "菜心");
Dd.Add(5, "肉片");
return Dd;
}
}