强制asp.net下拉列表进行扩展
我有一个ASP.NET数据绑定下拉列表,它根据文本框的内容填充。 在填充之后,我想自动展开下拉列表,以便用户意识到需要做出选择,而不需要单击下拉列表来展开它。 似乎没有财产或方法可以做到这一点。
编辑:在尝试了Ed B的例子后,我仍然被卡住了。 我的ddl的id是’ctl00_ContentPlaceHolder9_ddlContact’。 如果我将以下内容放在按钮的onclick事件中,它可以正常工作,下拉可以很好地扩展:
document.getElementById('ctl00_ContentPlaceHolder9_ddlContact').size=10;
但是,ddl的Databound事件中的以下代码显示警报但不扩展下拉列表:
string script = " "; script += "alert('expanding');document.getElementById('ctl00_ContentPlaceHolder9_ddlContact').size=10 "; ClientScript.RegisterClientScriptBlock(GetType(), "Dropdown", script);
摘要:您无法展开vanilla下拉列表。 有关更多信息,请参阅此讨论: 我可以使用jQuery打开下拉列表吗 ? 但是,有些解决方法可以接受。
一种方法(虽然有点厚颜无耻)是让下拉列表扩展以同时显示更多项目。 默认情况下,a element一次只显示一个列表项,但您可以使用其size属性让它一次显示多个列表项。 使用这种方法,您可以在用户鼠标hover在DDL上时调整大小属性(模拟扩展它),然后在鼠标关闭时将其恢复为大小 1(将其恢复为“正常”DDL)。 这是一个例子:
Red Green Blue
另一种选择是使用JavaScript来创建伪选择。 简而言之,您使用脚本和DOM操作以及CSS的组合来获得满足您要求的用户界面。
快乐编程!
您可以在更改后更改下拉列表的大小。 选择一个选项后,可以将大小更改回1。
此代码在鼠标hover时更改大小,但您在服务器端绑定后将其更改为调用open_ddl。
Worst President Ever:
您需要将属性multiple添加到选择列表中。
这是你需要附加到DataBound
上的脚本变量的javascript代码。 (假设您使用的是jQuery)
script+=$("#ctl00_ContentPlaceHolder9_ddlContact").attr("multiple", "multiple");
或者您可以取出javascript并直接在标记中添加多个属性。 这样做:
DropDownList1.Attributes.Add("multiple","multiple");
- 我将如何使用带有.net 4.0的Entity Framework 6的breeze
- 如何为GoogleWebAuthorizationBroker.AuthorizeAsync设置return_uri?
- 如何在asp.net vnext中注册身份validation类型名称
- ASP.NET 5,MVC6,WebAPI – > ModelState.IsValid始终返回true
- 在没有登录的情况下在Intranet上获取Web应用程序的域\用户名
- 检查WebAPI是否可用于C#Code Behind的简单,最佳方法
- 如何在grid.net中触发LinkButton的click事件和在asp.net中显示PopUp窗口
- ASP.NET应用程序页面不适用于客户端计算机
- 将值数组发送到Oracle过程以在WHERE IN子句中使用