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;
}
}

浙公网安备 33010602011771号