DropDownList的问题喔~!高手进来瞧瞧~!!
正在进行的项目中有一个贸易方式的字段,需要从贸易方式表里读取数据再放到DropDownList进行选择,可是有一百多项.客户要求可以输入 数据 在DropDownList里进行过滤..
请问高手有什么方式可以实现?
[解决办法]
客户要求可以输入 数据 在DropDownList里进行过滤..是什么意思?
[解决办法]
不容易,你需要一个可以输入的文本框 + AJAX
[解决办法]
Ajax+WebService,楼主可以下个AJaxControlToolKit看看,里面有例子就是实现你所要求的功能
[解决办法]
微软的 ajax.net 里面有
[解决办法]
AJaxControlToolKit里的AutoCompleteExtender
[解决办法]
就像迅雷的搜索?
[解决办法]
可以输入的是文本框!你要的那些像是提示内容!
[解决办法]
根本没看懂需求
[解决办法]
用一个TextBox 下面放一个 ListBox 右边放一个 Button
使用JS脚本把它做成一个类似 ComboBox 一样的东西
[解决办法]
AJaxControlToolKit里的AutoCompleteExtender
[解决办法]
Mark!
[解决办法]
路过学习~
[解决办法]
dropdownlist自由输入问题 我们以前做的时候都是用两个控件叠+在一起 楼主可以搜一搜
[解决办法]
<asp:DropDownList ID= "DropDownList1 " runat= "server ">
<asp:ListItem> a </asp:ListItem>
<asp:ListItem> b </asp:ListItem>
<asp:ListItem> ab </asp:ListItem>
<asp:ListItem Value= "ba "> </asp:ListItem>
</asp:DropDownList>
<asp:TextBox ID= "TextBox1 " runat= "server " AutoPostBack= "True " OnTextChanged= "TextBox1_TextChanged "> </asp:TextBox>
.cs
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
string a = TextBox1.Text.ToString().Trim();
foreach (ListItem i in DropDownList1.Items)
{
if(i.Text.ToString().Length> =a.Length)
if (i.Text.ToString().Substring(0, a.Length) == a)
{
i.Selected = true;
break;
}
}
}
在初始化dropdownlist的时候得先把绑定的数据用order by 先排下序
这种方法很不爽,是在文本框失去焦点的时候才触发的.所以得加个ajax.
i.Selected = true;
break;
这有错误,得改改.大概就是说下思路.
我也是新手,要是哪里说错了 请不要见怪
[解决办法]
用AJaxControlToolKit里的AutoCompleteExtender的可以实现~但是它不是下拉框就是个textBox跟Google的搜索相识~
[解决办法]
<html>
<head>
<title> 可以编辑的下拉列表 - by WildWind <wildwind_zz@21cn.com> ... </title>
<script language= "JavaScript ">
<!--
function catch_keydown(sel)
{
switch(event.keyCode)
{
case 13:
//Enter;
sel.options[sel.length] = new Option( " ", " ",false,true);
event.returnValue = false;
break;
case 27:
//Esc;
alert( "text: " + sel.options[sel.selectedIndex].text + ", value: " + sel.options[sel.selectedIndex].value + "; ");
event.returnValue = false;
break;
case 46:
//Delete;
if(confirm( "删除当前选项!? "))
{
sel.options[sel.selectedIndex] = null;
if(sel.length> 0)
{
sel.options[0].selected = true;
}
}
event.returnValue = false;
break;
case 8:
//Back Space;
var s = sel.options[sel.selectedIndex].text;
sel.options[sel.selectedIndex].text = s.substr(0,s.length-1);
event.returnValue = false;
break;
}
}
function catch_press(sel)
{
sel.options[sel.selectedIndex].text = sel.options[sel.selectedIndex].text + String.fromCharCode(event.keyCode);
event.returnValue = false;
}
//-->
</script>
</head>
<body onload= "s1.focus(); ">
<h3> 操作方法: </h3>
<p> ?.按Enter键开始添加输入新的选项... <br> ?.按Del键删除当前选项... <br> ….按Esc键查看当前选项的text和value值... <br> ?.按BackSpace键删除当前选项的前一个字符... <br>
</p>
<h3> 测试结果: </h3>
<p> ?.IE6.0测试通过... <br>
</p>
<br>
<h3> 建议&意见: </h3>
<p> ?.大家可以做成htc,将这些函数绑在css上(很简单,不再介绍...)... <br>
</p>
<h3> 示例: </h3>
<p>
<select name=s1 onkeydown= "catch_keydown(this); " onkeypress= "catch_press(this); " style= "font-size:12px; "> <option> --- </option> </select>
</p>
</body>
</html>
可以用户选择完后,把值保存在runat=server的隐藏域里面,后台就能够取到值了!
如有疑问继续跟贴。
[解决办法]
autocomplete
[解决办法]
显然是文本框+AJAX,要例子给我发站内信留下邮件地址
[解决办法]
学习!
[解决办法]
DropDownList本身支持首字母查询,你可以把放进去的数据进行排序,这样可以勉强符合你的要求
[解决办法]
ajax