c# - 在 c# ASP .NET 中使用 JQuery 和 Ajax 方法自动完成
问题描述
我在我的文本框(在弹出容器中)中添加了来自 ajax 的自动完成方法。并且在文件和下面的代码中使用 WebMethod 的 SQL 数据ascx.cs
没有错误/异常,但仍然没有得到输出。我也试过AutoCompleteExtender
了,但这也不能返回任何结果(主要是GetCompletionList
方法没有被调用)。
在 EditUserSheet.ascx
$("#txtStudName").autocomplete({
source: function (request, response)
{
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "EditUserSheet.ascx/GetCompletionList",
data: "{'stdName':'" + document.getElementById('txtStudName').value + "'}",
dataType: "json",
success: function (data)
{
response(data.d);
},
error: function (result)
{
alert("No Match");
}
});
}
});
和文本框 ID = txtStudName
在 EditUserSheet.ascx.cs
[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public static List<string> GetCompletionList(string stdName)
{
using (SqlConnection sqlconn = new SqlConnection("Data Source=AlexaDB;Initial Catalog=Students;User ID=***;Password=***"))
{
List<string> StudentNames = new List<string>();
try
{
sqlconn.Open();
SqlCommand cmd = new SqlCommand("USP_SearchUserName", sqlconn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@term", stdName);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
for (int i = 0; i < dt.Rows.Count; i++)
{
StudentNames.Add(dt.Rows[i]["FirstName"].ToString());
}
sqlconn.Close();
return StudentNames;
}
catch (SqlException ex)
{
LoggingHandler.WriteLog(ex, TraceEventType.Error);
}
return StudentNames;
}
}
我的文本框中没有显示任何内容。实际上我希望当我开始在我的文本框中输入时,它想要检索与之相关的数据列表。
解决方案
推荐阅读
- c++ - 在这种情况下,工会成员的成员会调用自己的析构函数吗?
- keras - 辍学、正则化和批量标准化
- python - 当我不断收到相同的错误时,如何使用 pip 安装任何软件包?
- php - 使用 POST 类型表单提交按钮后获取附加元素的值
- php - 如何在php中对数组进行降序和升序排序?
- python - 将 fit_transform 与 OneHotEncoder 一起使用时出现内存错误
- python - 无法为训练数据运行 model_main.py。贡献错误
- spring - Spring Security:如何将 UserDetailsService 与 JwtAuthenticationProvider 一起使用?
- python-3.x - 在 PyGtk3 中调整 Gtk.DrawingArea 的大小
- json - Vue - 在不重新加载的情况下导入外部 JSON