Я добавил метод из ajax для автозаполнения в моем текстовом поле (в Popup-Container). И данные из SQL, использующие WebMethod в файле ascx.cs
и ниже, не имеют ошибок / исключений, но все еще не получили вывод. Я также пытался AutoCompleteExtender
, но он также не мог вернуть результат (в основном GetCompletionList
метод не вызывается).
In 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");
}
});
}
});
и идентификатор TextBox = 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;
}
}
Ничего не отображается в моем текстовом поле. На самом деле, я ожидаю, что когда я начну печатать в своем текстовом поле, он захочет получить список данных, связанных с этим.