jQuery Autocomplete 返回 JSON 数据

aspx文件:

<%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="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="jquery.autocomplete.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="jquery-1.6.4.js"></script>
    <script type="text/javascript"  language="javascript" src="jquery.autocomplete.js"></script>
    <script type="text/javascript">  
   $(document).ready(function()
     {
        var acOptions =
        {
        minChars: 1,
        max: 100,
        dataType: 'json', 

        extraParams: {
            format: 'json' },
    parse: function(data) {
     // alert(data);
        var parsed = [];
        for (var i = 0; i < data.length; i++) {
            parsed[parsed.length] = {
                data: data[i],

         //返回的json数据:{["kindname":"a"},["kindname":"b"]}
                value: data[i].kindname,
                result: data[i].kindname
            };
        }
        return parsed;
    },
    formatItem: function(item) {
        return item.kindname;
    }
};
       
      $("#Text1").autocomplete("Default.aspx",acOptions);   
  }); 

    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input id="Text1" type="text" /></div>
    </form>
</body>
</html>

aspx.cs文件

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Text;

public partial class Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["q"] != null)
        {
           
                string wo = Request.QueryString["q"].ToString();

                  //“q”是控件源文件定义的
                //Response.Write(wo);
                GetData(wo); 

        }
    }

    void GetData(string id)
    {
        string sql = "Select kindname FROM kind where leibie='" + id + "'";
        //Response.ContentType = "text/xml";
        Response.Clear();
        //Response.ContentType = "application/javascript";
        Response.ContentType = "application/json";
        Response.ContentEncoding = System.Text.Encoding.UTF8;
        Response.Write(GetJsonFromDataTable(GetDataSet(sql).Tables[0]));
        Response.Flush();
        Response.End();
    }
    string GetJsonFromDataTable(DataTable dt)
    {

        if (dt == null)
        {
            return "";
        }

        StringBuilder jsonString = new StringBuilder();

        string temp = "";
        string value = "";
        jsonString.Append("[");

        foreach (DataRow dr in dt.Rows)
        {
            temp = "";

            jsonString.Append("{");

            foreach (DataColumn dc in dt.Columns)
            {
                value = dr[dc].ToString();

                if (value.Length < 1)
                {
                    value = " ";
                }

                temp += "\"" + dc.ColumnName.ToLower() + "\":\"" + value + "\",";
            }

            temp = temp.TrimEnd(',');

            jsonString.Append(temp + "},");
        }

        temp = jsonString.ToString();
        temp = temp.TrimEnd(',');

        //return temp + "]}";   
        return temp + "]";

    }

    DataSet GetDataSet(string sql)
    {
        SqlConnection con = new SqlConnection("Data Source=QQ-B71719815945;Initial Catalog=flower;Integrated Security=True");
        con.Open();
        SqlCommand cmd = new SqlCommand(sql, con);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        da.Fill(ds);
        return ds;
    }  
}

posted @ 2012-09-03 11:21  王者杂货铺  阅读(699)  评论(0)    收藏  举报