【发布时间】:2011-11-30 11:39:57
【问题描述】:
我想显示下拉列表的所有项目在打开时无需单击向下箭头。你有什么建议吗?
【问题讨论】:
-
您是在寻找类似 ´
标签: javascript asp.net .net drop-down-menu
我想显示下拉列表的所有项目在打开时无需单击向下箭头。你有什么建议吗?
【问题讨论】:
标签: javascript asp.net .net drop-down-menu
使用 ListBox 或在网格控件(如 Repeater 或 ListView)中显示所有选项。
不知道 javascript 中的 API 会为你做这件事 - 所以如果是我,我会更改控件。
【讨论】:
有很多方法可以做到这一点。
最基本的方式如下:
<html>
<head>
<title>Example</title>
</head>
<body>
<div style="float:left; width:100%; height:30px;">
<select id="AutoDropdown" OnMouseOver="DoDropDown(this);" OnMouseOut="DoDropDown(this);">
<option>Test1</option>
<option>Test2</option>
<option>Test3</option>
<option>Test4</option>
</select>
</div>
<div>
<p>Here is some text that we hope the drop down list will appear over</p>
</div>
<script type="text/javascript">
function DoDropDown(objSel){
if(objSel.size > 1){
objSel.size = 1;
objSel.style.position='static';
}
else{
objSel.size = objSel.options.length;
objSel.style.position='absolute';
objSel.style.height='auto';
}
}
</script>
</body>
</html>
这模拟了我认为您正在尝试实现但看起来不太好的效果。
您可以通过模拟下拉列表获得更好的效果 - 网络上有很多控制选项。
这里有一个 Silverlight 版本:
http://gallery.expression.microsoft.com/OpenComboBoxDropDown
您还可以在 AJAX 工具包中调整各种控件:
http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite
我很确定您可以让 DropDown 和 PopupControls 都出现在 MouseOver 事件上。
使用 PopupControl,将其绑定到一个文本框,当用户选择一个值时,填充该文本框。
一些第三方控件(比如 Telerik 的)也支持这种风格。
【讨论】: