C# 在ASP.NETC中使用JQuery-自动完成文本框
我试图用数据库表中的项目自动完成文本框;但是,它不是自动完成的。即使存在数据,也不会从数据库中提取任何信息。自动完成不起作用时,我的做法有什么不同C# 在ASP.NETC中使用JQuery-自动完成文本框,c#,C#,我试图用数据库表中的项目自动完成文本框;但是,它不是自动完成的。即使存在数据,也不会从数据库中提取任何信息。自动完成不起作用时,我的做法有什么不同 <head runat="server"> <link href="jquery-ui.css" rel="stylesheet" type="text/css" /> <script src="jquery.min.js" type="text/javascript"></script>
<head runat="server">
<link href="jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="jquery.min.js" type="text/javascript"></script>
<script src="jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
SearchText();
});
function SearchText() {
$("#txtInvoiceNum").autocomplete({
source: function(request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "LoadSheet.aspx/GetInvoice",
data: "{'invoiceNum':'" + document.getElementById('txtInvoiceNum').value + "'}",
dataType: "json",
success: function(data) {
response(data.d);
},
error: function(result) {
alert("No Match");
}
});
}
});
}
</script>
AJAX请求和响应有效吗?您是否在响应中获得了预期的数据?它们不应该显示,但它们是json对象吗?在执行过程中,我没有看到任何事情发生在您的成功中:函数数据{…这里…},请添加以下内容:console.logdata;和大家分享结果,我更愿意安装Fiddler来观察请求和响应。现在,试试我说的,告诉我你得到了什么。它没有响应OK然后试着调试你的方法GetInvoice,在它的开头设置一个断点,它被调用了吗?
<asp:TextBox ID="txtInvoiceNum" runat="server"></asp:TextBox>
[WebMethod]
public static List<string> GetInvoice(string invoiceNum)
{
List<string> empResult = new List<string>();
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["TWCL_OPERATIONSConnectionString"].ConnectionString))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select Top 10 SOPNUMBE from [TWCL].[dbo].[SOP10100] where SOPNUMBE LIKE ''+@SearchInvoice+'%'";
cmd.Connection = con;
con.Open();
cmd.Parameters.AddWithValue("@SearchInvoice", invoiceNum);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
empResult.Add(dr["SOPNUMBE"].ToString());
}
con.Close();
return empResult;
}
}
}