我想显示下拉列表的所有项目,因为它在未点击向下箭头的情况下打开。你有什么建议吗?
答案 0 :(得分:3)
使用ListBox或显示网格控件中的所有选项,例如Repeater或ListView。
不知道javascript中的API会为你做什么 - 所以如果是我的话,我会更改控件。
答案 1 :(得分:2)
有很多方法可以做到这一点。
最基本的方法如下:
<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's)也支持这种风格。