可能重复:
对于太宽下拉菜单项目的建议?
我有一个下拉列表,它是由数据库填充。 它的值字段包含记录的ID,它的选项域含有记录的文字。 但该记录的文本输入非常长,使下拉如此广泛,它完全改变了我的网页的外观。 当我砍倒的宽度也减少了显示的文本。 有没有什么办法可以让网页看起来很好,仍然允许用户查看全文(如包装,滚动或类似的东西)?
我该如何处理呢?
可能重复:
对于太宽下拉菜单项目的建议?
我有一个下拉列表,它是由数据库填充。 它的值字段包含记录的ID,它的选项域含有记录的文字。 但该记录的文本输入非常长,使下拉如此广泛,它完全改变了我的网页的外观。 当我砍倒的宽度也减少了显示的文本。 有没有什么办法可以让网页看起来很好,仍然允许用户查看全文(如包装,滚动或类似的东西)?
我该如何处理呢?
尝试使用CSS来固定宽度添加到您的下拉列表中,这样的:
select {width: 150px}
虽然下拉本身将是一个固定的宽度,并且可能不会显示所有的文字,选择元素应扩大到最宽元素的宽度。
可能无法在IE7工作,以下,在这种情况下, 这个环节可能是一些使用这些浏览器的:
你可能会考虑设置一个固定的宽度,然后设置标题属性提供的功能的工具提示类型,以便当鼠标悬停在文本显示出来。
结合/填充下拉列表后,您可以设置每个项目,以自己的文字标题属性:
foreach (ListItem li in ddl.Items)
{
li.Attributes.Add("title", li.Text);
}
如果文本是非常错误的,我想你可能要考虑不同的方法,而不是仅仅显示它都在一个DropDownList
。
你可以拥有DropDownList
只显示文本作为总结的一小部分,然后在列表旁边显示完整的文字,当用户改变的项目。 我建议,这是使用AJAX来保持用户体验很好的完成。
要做到这一点,包裹DropDownList
和一个Label
到列表中的正确UpdatePanel
。 随后,的onSelectedIndexChanged事件DropDownList
会是这个样子:
protected void DropDownList1_selectedIndexChanged(object sender, EventArgs e)
{
var item = _DB.GetItemFromDB(DropDownList1.SelectedValue);
Label1.Text = item.Text;
}
一个愉快的替代方案是,以显示某种在你的列中的文本,再加上一个按钮或图形,表示他们可以通过鼠标悬停在细胞或点击的东西看多的一部分。
例如:
Name | Id | Cover Letter
----- ------ ----------------------------------------------------
Rex | 1000 | I am seeking opportunities in t... (click for more)
您可以通过手工编写代码,但这就是使这个容易,特别是如果你舒适的使用jQuery有很多的工具,在那里。 我发现下面的只是快速浏览JQuery的窗户和覆盖插件 :
你有没有考虑初始显示几个字符,然后用刀尖在选择项目时显示完整的字符串?
我写这个了一段时间后,你可能会发现有用: http://dpatrickcaldwell.blogspot.com/2011/06/giantdropdown-jquery-plugin-for-styling.html
这是一个jQuery插件,使被隐藏选择元素支持的设置样式的无序列表。
该人士是在GitHub上: https://github.com/tncbbthositg/GiantDropdown