文本框带有下拉建议

9

我目前在我的ASP.Net C# 2.0网站上有一个绑定数据的下拉列表,其中大约有400个项目。我想用类似于Google搜索中文本框的东西来替换它,您输入字母,只有以这些字母开头的条目才会弹出。

如何实现这样一个好方法?有人可以建议已经存在的控件吗?

6个回答

13

使用 HTML5(当然仅适用于小数据集)的一种方法是使用 datalist

<input list="users" name="users">
  <datalist id="users">
    <option value="Alice">
    <option value="Bob">
    <option value="Chuck">
    <option value="Chris">
    <option value="Duke">
    <option value="Emily">
  </datalist>

对于较大的数据集,AJAX是更好的选择。


10

4

1
如果这些是已知的实体,您可以使用JQuery,在OnUpdate事件上:
  1. 如果它是一个长列表,请向您的Web服务器发出Ajax请求,检索最佳选项
  2. 如果它是一个短列表,您可以将所有选项加载到页面上,并提供可选文本,而不需要进行服务器请求。
请查看JQuery库以了解如何显示建议的实现。

1

在ASP.NET的AJAX控件工具包中,有一个AutoComplete扩展程序。您可以设置许多不同的选项来进行客户端缓存和延迟间隔。只需将其指向Web服务或页面方法,就可以开始使用了。


0
TextBoxValueToDropDownList
    function AddNames(text) {

        if (document.myForm.insertText.value == "") {
            document.getElementById("insertText").style.border = "1px solid red";
            return false;
        }
        else {
            var option = document.createElement("OPTION");
            option.text = text.value;
            option.value = text.value;
            document.getElementById("dropDownList").options.add(option);
            document.myForm.insertText.value = "";
            document.getElementById("insertText").style.border = "1px solid green";
        }
    }




    <form name="myForm">
        <table>
            <tr>
                <td>
                    <input type="text" name="insertText" id="insertText" /></td>
                <td></td>
                <td>
                    <select name="dropDown" id="dropDownList">
                    </select>
                </td>
            </tr>
            <tr>
                <td>
                    <input type="button" value="Insert" id="button" onclick="AddNames(insertText);" /></td>
            </tr>
        </table>
    </form>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接