使用jquery自动完成有困难吗
我对jquery绝对是新手。但我想把它用于一个大学项目。我使用了Web服务。这些值是从SQL数据库检索的。代码编译时没有任何错误。但是自动完成功能不起作用 处理程序的代码如下所示:使用jquery自动完成有困难吗,jquery,asp.net,Jquery,Asp.net,我对jquery绝对是新手。但我想把它用于一个大学项目。我使用了Web服务。这些值是从SQL数据库检索的。代码编译时没有任何错误。但是自动完成功能不起作用 处理程序的代码如下所示: <%@ WebHandler Language="C#" Class="Handler" %> using System; using System.Collections; using System.Configuration; using System.Data;
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Text;
public class Handler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string prefixText = context.Request.QueryString["q"];
string constr = "Data Source=USER\\SQLEXPRESS;Initial Catalog=my_db;Integrated Security=True;";
using (SqlConnection conn = new SqlConnection(constr))
{
// conn.ConnectionString = ConfigurationManager
// .ConnectionStrings["constr"].ConnectionString;
using (SqlCommand cmd = new SqlCommand(constr,conn))
{
cmd.CommandText = "select [name] from names where " +
"[name] like @SearchText + '%'";
cmd.Parameters.Add("@SearchText", SqlDbType.VarChar, 50).Value = prefixText + "%";
cmd.Connection = conn;
StringBuilder sb = new StringBuilder();
conn.Open();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
sb.Append(sdr["name"])
.Append(Environment.NewLine);
}
}
conn.Close();
context.Response.Write(sb.ToString());
}
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Home.aspx.cs" Inherits="Home" %>
<!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>
<script src="scripts/jquery-1.7.2.js" type="text/javascript"></script>
<script src="scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="scripts/jquery.ui.autocomplete.js" type="text/javascript"></script>
<script src="scripts/jquery.ui.core.js" type="text/javascript"></script>
<script src="scripts/jquery.ui.position.js" type="text/javascript"></script>
<script src="scripts/jquery.ui.widget.js" type="text/javascript"></script>
<link href="scripts/demos.css" rel="stylesheet" type="text/css" />"
<script type="text/javascript">
$(document).ready(function () {
$("#<%= txtsearch.ClientID %>").autocomplete({
minLength: 1,
delay: 0,
"~/Handler.ashx"});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:TextBox ID="txtsearch" runat="server"></asp:TextBox>
</div>
</form>
</body>
</html>
脚本的代码如下所示:
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Text;
public class Handler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string prefixText = context.Request.QueryString["q"];
string constr = "Data Source=USER\\SQLEXPRESS;Initial Catalog=my_db;Integrated Security=True;";
using (SqlConnection conn = new SqlConnection(constr))
{
// conn.ConnectionString = ConfigurationManager
// .ConnectionStrings["constr"].ConnectionString;
using (SqlCommand cmd = new SqlCommand(constr,conn))
{
cmd.CommandText = "select [name] from names where " +
"[name] like @SearchText + '%'";
cmd.Parameters.Add("@SearchText", SqlDbType.VarChar, 50).Value = prefixText + "%";
cmd.Connection = conn;
StringBuilder sb = new StringBuilder();
conn.Open();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
sb.Append(sdr["name"])
.Append(Environment.NewLine);
}
}
conn.Close();
context.Response.Write(sb.ToString());
}
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Home.aspx.cs" Inherits="Home" %>
<!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>
<script src="scripts/jquery-1.7.2.js" type="text/javascript"></script>
<script src="scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="scripts/jquery.ui.autocomplete.js" type="text/javascript"></script>
<script src="scripts/jquery.ui.core.js" type="text/javascript"></script>
<script src="scripts/jquery.ui.position.js" type="text/javascript"></script>
<script src="scripts/jquery.ui.widget.js" type="text/javascript"></script>
<link href="scripts/demos.css" rel="stylesheet" type="text/css" />"
<script type="text/javascript">
$(document).ready(function () {
$("#<%= txtsearch.ClientID %>").autocomplete({
minLength: 1,
delay: 0,
"~/Handler.ashx"});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:TextBox ID="txtsearch" runat="server"></asp:TextBox>
</div>
</form>
</body>
</html>
谁能告诉我哪里出了错。试试这句话:
"~/Handler.ashx"});
没有~
用小提琴http://www.fiddler2.com/fiddler2/ 要查看是否发送了请求,初始化自动完成的方式不正确。您必须为处理程序设置源选项:
$("#<%= txtsearch.ClientID %>").autocomplete({
source: "Handler.ashx",
minLength: 1,
delay: 0
});
此外,SQL正在选择名称。自动完成接受一个项目数组。请看这里Qpirate你能告诉我我对处理程序做了哪些修改吗?。实际上,我从一个站点获得了处理程序代码。我需要从表中检索结果集。所以我只使用了给定的代码。请帮忙……你能告诉我怎么用吗。我已经下载了。但我觉得有点复杂。这听起来也像是一个基于web的网站。我只是在本地机器上使用它。请帮忙。