• ASP.NET jQuery 随笔 使用jQuery UI的Autocomplete方法实现文本框的自动搜索填充功能


    首先当然是去下载JQuery UI ,这里这里是下载地址http://jqueryui.com/

    第一步是点击这里

    image

    第二步选择你想要下载的主题进行下载

    image

    我这里是选择的cupertino主题包

    image点击圆圈里的Download进行下载,此时页面会跳转到一个让您进行控件和版本筛选的页面,因为我只需要autocomplate,其他不需要,所以只选择这里控件

    image

    当然你也可以全选!

    然后就是在页面中引用了,这里我直接贴出代码,详细怎么引用自己看就可以了,代码如下:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Web.Default" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <link href="Base.css" rel="stylesheet" type="text/css" />
        <link href="js/jquery-ui-1.9.2.custom/css/cupertino/jquery-ui-1.9.2.custom.css" rel="stylesheet"
            type="text/css" />
        <script src="js/jquery-1.8.2.min.js" type="text/javascript"></script>
        <script src="js/jquery-ui-1.9.2.custom/js/jquery-ui-1.9.2.custom.js" type="text/javascript"></script>
        <style type="text/css">
            .ui-autocomplete-loading
            {
                background: white url('img/ui-anim_basic_16x16.gif') right center no-repeat;
            }
            #city
            {
                 25em;
            }
        </style>
        <script type="text/javascript">
            $(function () {
                //缓存
                var cache = {};
                $("#txtMajor").autocomplete({
                    source: function (request, response) {
                        var term = request.term;
                        if (term in cache) {
                            response($.map(cache[term], function (item) {
                                return {
                                    label: item.xk_name + '---' + item.xk_code,
                                    value: item.xk_name
                                }
                            }));
                            return;
                        }
     
                        $.ajax({
                            url: "service/GetJsonData.ashx",
                            dataType: "json",
                            data: {
                                searchDbInforItem: request.term
                            },
                            success: function (data) {
                                cache[term] = data;
                                response($.map(data, function (item) {
                                    return {
                                        label: item.xk_name + '---' + item.xk_code,
                                        value: item.xk_name
                                    }
                                }));
                            }
                        });
                    },
                    minLength: 1,
                    select: function (event, ui) {
                        $("#hidMajorName").val("");
                        $("#hidMajorCode").val("");
                        var strs = ui.item.label.split("---");
                        $("#hidMajorName").val(strs[0]);
                        $("#hidMajorCode").val(strs[1]);
                    },
                    open: function () {
                        $(this).removeClass("ui-corner-all").addClass("ui-corner-top");
                    },
                    close: function () {
                        $(this).removeClass("ui-corner-top").addClass("ui-corner-all");
                    }
                });
            });
     
        </script>
        <style type="text/css">
            
        </style>
       
    </head>
    <body>
        <form id="form1" runat="server">
        <div style="margin: 0 auto;  800px;">
            <table cellpadding="2" cellspacing="1" border="0" class="tab">
                <tr>
                    <td style="text-align: right;">
                        所学专业:
                    </td>
                    <td>
                        <asp:TextBox ID="txtMajor" class="text" runat="server" Width="250px"></asp:TextBox><span
                            style="color: Red;">&nbsp;&nbsp;可通过拼音码进行查询:如【历史学,可输入lsx进行查询也可输入汉字】</span>
                    </td>
                </tr>
            </table>
             <asp:HiddenField ID="hidMajorCode" runat="server" />
             <asp:HiddenField ID="hidMajorName" runat="server" />
        </div>
        </form>
    </body>
    </html>

    这里使用隐藏控件是为了能够在后台获得用户选择的值,下面是一般处理程序中的代码!

    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Web;
    using Common;
    using DBUtility;
    namespace Web.service
    {
        /// <summary>
        /// GetJsonData 的摘要说明
        /// </summary>
        public class GetJsonData : IHttpHandler
        {
    
            public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";
                string input = context.Request["searchDbInforItem"];
                input = input.ToLower();
                string sql = @"SELECT  * FROM dbo.V_xk where spell like '%" + input + "%' or xk_name like '%" + input + "%' or xk_code like '%" + input + "%'";
                DataTable dt = SqlHelper.Query(sql).Tables[0];
                string data =  JsonHelper.ToJson(dt);
                context.Response.Write(data);
            }
    
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }

    image

    image

    image

  • 相关阅读:
    CF566E Restoring Map
    CF1034D Intervals of Intervals
    CF1285F Classical?
    Java日报
    课程考核感想
    每日日报8月31日
    每日日报8月30日
    每日日报8月29日
    每日日报8月28日
    每日日报8月27日
  • 原文地址:https://www.cnblogs.com/jlcoder/p/3471664.html
Copyright © 2020-2023  润新知