2013-04-08 116 views
3

我有一个下拉列表,我想为下拉列表项目添加工具提示。 我尝试了下面的代码,但它不起作用;工具提示下拉列表项目

for(int d=0;d<drpID.Items.Count;d++) 
    { 
     drpID.Items[d].Attributes.Add("title", drpID.Items[d].Value); 

    } 

任何人都可以帮助我吗?

回答

6

试试这个;

public void Tooltip(ListControl lc) 
{ 
    for (int d = 0; d < lc.Items.Count; d++) 
    { 
     lc.Items[d].Attributes.Add("title", lc.Items[d].Text); 
    } 
} 

您应该使用.Text财产提示,而不是为.Value

此链接查阅:http://www.dotnetspider.com/resources/5099-Tool-tip-for-DropDownList-ASP-NET.aspx

+1

@SandraDsouza它应该工作。你是怎么尝试的?你把你的下拉列表作为参数吗? – 2013-04-08 06:26:01

+0

非常感谢。有效。非常感谢 – Shanna 2013-04-08 06:27:49

+0

我在发送参数时犯了一个错误。再次感谢 – Shanna 2013-04-08 06:28:35

4

尝试下面的代码:

foreach (ListItem item in drpID.Items) 
{ 
item.Attributes.Add("Title", item.Text); 
} 
2

你应该试试这个

protected void ddlDetails_DataBound(object sender, EventArgs e) 
{ 
    DropDownList ddl = sender as DropDownList; 
    if(ddl!=null) 
    { 
    foreach (ListItem li in ddl.Items) 
    { 
     li.Attributes["title"] = li.Text; 
    } 
    } 
} 

enter image description here

1

我知道这个线程关于一个数据绑定控件,但在你实际上很难在aspx页面编码的列表项值罕见的情况下,我只加了

<asp:ListItem Id="liNumberOne" Runat="server" title="My nifty help text" /> 

属性的列表项标签本身和它的工作就好了。当然,我收到了一个抱怨,认为这不是一个有效的属性,但当页面呈现时,它出现了,然后它就成为一个有效的属性。

1

我刚刚实施了一个程序化填充DropDownList工具提示。我发现title属性被自动设置为Text属性,我无法覆盖它,即使在PreRender中也是如此。

这个线程没有任何建议,我最终被迫使用jQuery方法。

创建列表项当我设定的提示文本

ListItem item = new ListItem("Name", "Value"); 
    item.Attributes.Add("tooltip", tooltip); 
    ddl.Items.Add(item); 

自定义属性,那么火之下有启动脚本

function SetTooltip() { 
    jQuery('#<%=ddl.ClientID %> option').each(
     function() { 
      jQuery(this).attr('title', jQuery(this).attr('tooltip')); 
     } 
    ); 
} 

漂亮是不是方法。但它的工作。

相关问题