В моем приложении asp. net c# я могу ввести номер улицы в поле texbox, отобразить и выбрать адрес из выпадающего списка, но если я попытаюсь ввести название улицы в том же текстовом поле без предварительного добавления пробела для учета наибольшего значения номера улицы в таблице БД отображается сообщение «Моя запись не найдена». Не уверен, как исправить.
JQUERY КОД:
$(function () {
$("[id*=txtStreet]").autocomplete({
source: function (request, response) {
$.ajax({
url: 'Registry-For-Congregate-Care-Sites.aspx/GetSearchResults',
//data: "{ 'prefix': '" + request.term + "'}",
data: JSON.stringify({ prefix: request.term }),
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (data) {
if (data.d.length > 0) {
response($.map(data.d, function (item) {
return {
label: item,
val: item
};
}))
} else {
response([{ label: 'No results found.', val: -1}]);
}
}
});
},
select: function (e, u) {
if (u.item.val == -1) {
return false;
}
}
});
});
</script>
КОД ЗАПИСЬ: publi c stati c string [] GetSearchResults (префикс строки) {
List<string> searchResult = new List<string>();
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = ConfigurationManager.ConnectionStrings["MyDBAddressConnection"].ConnectionString;
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = @"SELECT TOP 20 PARCELLOCATIONNO+PARCELLOCATION Result FROM RPIPARCEL
WHERE PARCELLOCATIONNO+PARCELLOCATION like @SearchText + '%' ORDER BY PARCELLOCATION";
cmd.Parameters.AddWithValue("@SearchText", prefix.Trim());
cmd.Connection = conn;
conn.Open();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
searchResult.Add(sdr["Result"].ToString());
}
}
conn.Close();
}
}
return searchResult.ToArray();
}