Asp.net文本框输入提示功能(jquery-ui)

我们用谷歌、百度查东西的时候,浏览器会根据我们在搜索框中输入的关键字给出几个相似的提示项供选择。
在Asp.net Web开发中有时我们也需要实现这个功能,接下来我们借助jquery插件jquery-ui来达到这种效果,插件官网为:http://jqueryui.com/autocomplete/,大家在下载的时候注意只选择autocomplete部分,否则把其他功能的代码也一并下载下来没卵用。
这里写图片描述

引入js、css文件

<script src="JS/Autocomplete/external/jquery/jquery.js" type="text/javascript"></script>
<script src="JS/Autocomplete/jquery-ui.js" type="text/javascript"></script>
<link href="JS/Autocomplete/jquery-ui.css" rel="stylesheet" type="text/css" />

基本固定数据写法

<script type="text/javascript">
    $(document).ready(function () {
        var availableTags = [
            "Asp","BASIC","C",
            "C++","Java","JavaScript",
            "Lisp","Perl","PHP",
            "Python","Ruby"
        ];           
        $("#autocomplete").autocomplete({
            source: availableTags
        });
    });
</script>
<body>
    <form id="form1" runat="server">
    <div>
        编程语言:<input type="text" id="autocomplete" class="ui-widget" />
    </div>
    </form>
</body>

这个基本例子很简单,不过有两个知识点必须了解:
1、文本框提示的内容来源于符合特定格式的静态数据或动态数据(此处展示的是静态数据)
2、source的数据源必须是json数组,不能是其他格式的内容,否则没效果

请求aspx动态获取source数据

前台代码:

<script type="text/javascript">
    $(document).ready(function () {
        var availableTags = [
            "Asp","BASIC","C",
            "C++","Java","JavaScript",
            "Lisp","Perl","PHP",
            "Python","Ruby"
        ];      
        $.ajax({
            type: "POST",
            url: "AjaxPage.aspx/GetAllHints",
            contentType: "application/json",
            //data必须用双引号引起来
            data: "{ action: 'autoComplete', value: 'guo' }",
            dataType: "json",
            async: false,
            success: function (msg) {
                //将后台返回的数据转换成json数组形式
                var datas = JSON.parse(msg.d);
                //修改数据源的值
                availableTags = datas;
                $("#autocomplete").autocomplete({
                    source: availableTags
                });
            }
        });             
    });
</script>

aspx后台代码:

[WebMethod]
public static string GetAllHints(string action,string value)
{
    string strResult = "[\"guo\",\"tong\",\"chang\",\"wang\",\"hao\",\"bang\"]";
    return strResult;
}

请求ashx动态获取source数据

前台代码:

<script type="text/javascript">
    $(document).ready(function () {
        var availableTags = [
            "Asp","BASIC","C",
            "C++","Java","JavaScript",
            "Lisp","Perl","PHP",
            "Python","Ruby"
        ];      
        $.ajax({
            type: "POST",
            url: "Handler1.ashx",
            contentType: "application/json",
            //data不必用双引号引起来【不同点1】
            data: { action: 'autoComplete', value: 'guo' },
            dataType: "json",
            async: false,
            success: function (msg) {
                //不需要将后台返回的数据转换成json数组形式【不同点2】
                //修改数据源的值
                availableTags = msg;
                $("#autocomplete").autocomplete({
                    source: availableTags
                });
            }
        });             
    });
</script>

两个不同点指的是从aspx动态获取数据与从ashx动态获取数据之间的不同之处。
ashx后台代码:

 public void ProcessRequest(HttpContext context)
{
    string strResult = "[\"guo\",\"tong\",\"chang\",\"wang\",\"hao\",\"bang\"]";
    context.Response.Write(strResult);
}

插件免费下载地址:http://download.csdn.net/detail/xiaouncle/9616290

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

changuncle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值