刚才一位网友在SKYPE问及,如何给asp.net的DropDownList控件添加ToolTip(title)属性。
Insus.NET回复他说,同这样的问题,在google或baidu应该很多。他却回答说,一不想使用Javascript,二真正的是想看看你的解决方法。下面是Insus.NET实现的效果:
实现过程,只是为DropDownList控件写OnDataBound事件,
DropDownList1_DataBound
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); } }
完整的程序,xxx.aspx:
View Code
<% @ Page Language = " C# " AutoEventWireup = " true " CodeFile = " Default.aspx.cs " Inherits = " _Default " %> <! 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:
View Code
using System; 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; } }