Internet Explorer 7Internet Explorer 6.0IEIIS 6.0.NET CFIISWindows 2003WebFormsVisual Studio 2005Windows 2000Windows XP.NET 2.0C# 2.0HTMLIntermediateDevVisual StudioWindows.NETASP.NETC#
在 Internet Explorer 中为下拉列表和列表框控件添加工具提示






4.39/5 (23投票s)
Internet Explorer 并不总是显示下拉列表和列表框的全部内容。这意味着如果列表框中的数据大于控件的宽度,用户将无法完全看到它。我们可以显示每个内容的工具提示来解决这个问题。
引言
正如你在上图中看到的,Internet Explorer 对下拉框/列表框的渲染是不合适的。它没有显示超出控件宽度的文本。为了解决这个问题,我们可以添加一个带有内容的工具提示,以便用户可以阅读完整的值。
使用代码
为了解决这个问题,我在 Internet 上搜索了,但没有找到合适的解决方案。虽然有一些好的第三方控件可以使用按钮、编辑框、div 等的组合来显示内容。但它们的管理也是一个问题。我想到一个解决方案是为控件的每个元素显示工具提示,这样就可以使用工具提示查看非可见区域的文本。工具提示将在服务器端绑定,并将适用于 Firefox 和 Internet Explorer。以下是将工具提示与控件绑定的代码。
//
// This method binds tooltip with a dropdown/ any list control
//
public static void BindTooltip(ListControl lc)
{
for (int i = 0; i < lc.Items.Count; i++)
{
lc.Items[i].Attributes.Add("title", lc.Items[i].Text);
}
}
在这里,“title
”属性是为每个列表项添加工具提示的魔力。
你所要做的就是在将所有值绑定到控件后调用此函数。你可以将此代码保存在你的帮助器文件中,并在任何需要的地方调用它。如果你的页面中有多个控件需要附加工具提示,则无需多次调用此函数,只需调用它的另一个重载即可。这个重载函数将在页面中搜索列表框,并将工具提示附加到它找到的每个控件。
public static void BindTooltip(System.Web.UI.Page p)
{
if (p == null || p.Form == null)
return;
BindTooltip(p.Form.Controls);
}
为了让我的工作更轻松,我只是将代码放在我的母版页中。每个使用母版页的页面都将自动获得工具提示,如示例所示。
完整的源代码附在示例应用程序中。
尽情享受吧!编程愉快!