-->

如何处理下拉列表控制长文在ASP.NET [复制](how to handle long text

2019-06-25 16:58发布

可能重复:
对于太宽下拉菜单项目的建议?

我有一个下拉列表,它是由数据库填充。 它的值字段包含记录的ID,它的选项域含有记录的文字。 但该记录的文本输入非常长,使下拉如此广泛,它完全改变了我的网页的外观。 当我砍倒的宽度也减少了显示的文本。 有没有什么办法可以让网页看起来很好,仍然允许用户查看全文(如包装,滚动或类似的东西)?

我该如何处理呢?

Answer 1:

尝试使用CSS来固定宽度添加到您的下拉列表中,这样的:

select {width: 150px}

虽然下拉本身将是一个固定的宽度,并且可能不会显示所有的文字,选择元素应扩大到最宽元素的宽度。

可能无法在IE7工作,以下,在这种情况下, 这个环节可能是一些使用这些浏览器的:



Answer 2:

你可能会考虑设置一个固定的宽度,然后设置标题属性提供的功能的工具提示类型,以便当鼠标悬停在文本显示出来。

结合/填充下拉列表后,您可以设置每个项目,以自己的文字标题属性:

foreach (ListItem li in ddl.Items)
{
    li.Attributes.Add("title", li.Text);
}


Answer 3:

如果文本是非常错误的,我想你可能要考虑不同的方法,而不是仅仅显示它都在一个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;
}


Answer 4:

一个愉快的替代方案是,以显示某种在你的列中的文本,再加上一个按钮或图形,表示他们可以通过鼠标悬停在细胞或点击的东西看多的一部分。

例如:

Name | Id   | Cover Letter
----- ------ ----------------------------------------------------
Rex  | 1000 | I am seeking opportunities in t... (click for more)

您可以通过手工编写代码,但这就是使这个容易,特别是如果你舒适的使用jQuery有很多的工具,在那里。 我发现下面的只是快速浏览JQuery的窗户和覆盖插件 :

  • JQuery的标注插件 ,看起来非常漂亮。
  • JHelperTip ,“多用工具提示的jQuery。”
  • 科达泡沫的一个圆滑的,可爱的风格。


Answer 5:

你有没有考虑初始显示几个字符,然后用刀尖在选择项目时显示完整的字符串?



Answer 6:

我写这个了一段时间后,你可能会发现有用: http://dpatrickcaldwell.blogspot.com/2011/06/giantdropdown-jquery-plugin-for-styling.html

这是一个jQuery插件,使被隐藏选择元素支持的设置样式的无序列表。

该人士是在GitHub上: https://github.com/tncbbthositg/GiantDropdown



文章来源: how to handle long text in dropdownlist control in ASP.NET [duplicate]