如何在asp.net中显示下拉列表的所有项目?

时间:2011-11-30 11:39:58

标签: javascript asp.net .net drop-down-menu

我想显示下拉列表的所有项目,因为它在未点击向下箭头的情况下打开。你有什么建议吗?

2 个答案:

答案 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)也支持这种风格。