jquery.combobox+ashx实现AutoComplete

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="comboboxTest2.aspx.cs" Inherits="comboboxdemo.comboboxTest2" %>

<!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  rel="Stylesheet" href="combobox/jquery.combobox.css" />
    <script type="text/javascript" src="combobox/jquery-1.3.2-vsdoc2.js"></script>
    <script type="text/javascript" src="combobox/jquery.combobox.js"></script>
    <script type="text/javascript">
        $(function() {
            //初始化所有combobox的外观
            combobox.prototype.mustSelect = true;
            combobox.prototype.init(".combos", "combobox/dropdown.gif");

            //初始化combobox行为
            var combo1 = new combobox("#<%=tb1.ClientID %>");//对tb1进行combobox行为

            //后台或者数据源
            $.get("comboboxHander.ashx", function(str) {
            var arr = eval(str);
                //alert(arr[0].id);
                combo1.dataSource = arr;
            });
            //绑定
            combo1.dataBind();
            //选择事件
            combo1.onSelected = function(jqdom) {
                $("#<%=TextBox1.ClientID %>").val(jqdom.attr('id') + "   " + jqdom.text());
            }


        })
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:TextBox ID="tb1" runat="server" CssClass="combos"></asp:TextBox><br /><br />
    <asp:TextBox ID="tb2" runat="server" CssClass="combos" Text="我是打酱油来的"></asp:TextBox>
    <br />
    <br />
    <asp:TextBox ID="TextBox1" runat="server" ></asp:TextBox>
    </div>
    </form>
</body>
</html>

 

 

View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Script.Serialization;

namespace comboboxdemo
{
    /// <summary>
    /// $codebehindclassname$ 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class comboboxHander : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            List<EntityClass> list = new List<EntityClass>();
            for (int i = 1; i <= 100; i++) {
                EntityClass ec = new EntityClass();
                ec.ID = "id_"+i.ToString();
                ec.Name = "name_" + i.ToString();
                list.Add(ec);
            }
            //序列化
            JavaScriptSerializer jss = new JavaScriptSerializer();
            string str= jss.Serialize(list.Select(p => new { id = p.ID, text = p.Name }).OrderBy(p=>p.id));
            //返回
            context.Response.Write(str);
           
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }


    }

    public class EntityClass 
    {
        public string ID { set; get; }
        public string Name { set; get; }
    }

    
}

 

 

posted @ 2012-08-16 15:28  Star★  阅读(626)  评论(0编辑  收藏  举报