Не фильтровать результаты в автозаполнении jquery / asp.net - PullRequest
1 голос
/ 20 декабря 2011

У меня есть автозаполнение jquery с помощью вызова ajax. Я делаю фильтр в моем коде позади метода. Я не хочу фильтровать их в пользовательском интерфейсе. Как это сделать. Чтобы быть более конкретным, если пользователь вводит «St.» например, Я возвращаю значения, которые имеют «Санкт» а также «Святой» в результатах. Но JQuery не отображает результаты с «Святой». как я могу получить автозаполнение jquery для отображения 'Saint'?

Код в Jquery

 function GetNames(text) {
$.ajax({
type: "POST",
url: "Default.aspx/GetSchools",
dataType: "json",
data: '{ "data":"' + text + '"}',
contentType: "application/json; charset=utf-8",
success: function(data) {
$('#university').autocomplete({
source: data.d,
focus: function(event, ui) {
$('#university').val(ui.item.Descr);
return false;
},
select: function(event, ui) {
$('#university').val(ui.item.Descr);
$('#universityID').val(ui.item.UnivCode);
return false;
}
});
}
});
}

Код в файле .cs

public static List<DataClass.School> GetSchools(string data)
        {
            DataTable dt = (DataTable)HttpContext.Current.Session["Schools"];

            data = data.ToLower();
            Debug.WriteLine(data);

            var ret = new List<TestApplication.DataClass.School>();
            ret = (from l in dt.AsEnumerable()
                   let s = l["Descr"].ToString().ToLower()
                   where (s.Contains(data) || s.Contains("saint"))
                   select new TestApplication.DataClass.School
                   {
                       Descr = l["Descr"].ToString(),
                       UnivCode = l["UnivCode"].ToString()
                   }).Take(20).ToList();

            Debug.WriteLine(ret.Count.ToString());

        return ret.ToList();
        }

Ответы [ 2 ]

0 голосов
/ 30 декабря 2011

Хорошо. Где-то в сети говорилось, что я могу изменить jQuery. Поскольку я фильтрую результаты в коде, я изменил свой jQuery, чтобы ничего не фильтровать. В методе расширения автозаполнения jquery-ui.js изменен на

var matcher = new RegExp($.ui.autocomplete.escapeRegex(''), "i");

Это прекрасно работает.

0 голосов
/ 20 декабря 2011

это должно быть так же просто, как установить источник в URL, аналогично примеру в документации jqueryui

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...