Как показать автозаполнение из более чем одного столбца?

1

Этот код возвращает только автозаполнение из одного столбца, и моя логика состоит в том, чтобы получить его из двух столбцов. Я хочу знать, в чем проблема. Пожалуйста, если кто-нибудь знает ответ, пожалуйста, помогите мне.
Благодарю!

    public JsonResult SearchFromTable(string name)
    {            
        AccountingDataLayer.AccountingSMSEntities context = new AccountingDataLayer.AccountingSMSEntities();
        var search = (from s in context.Products
                          where s.Name == name || s.FullCode == name
                          select new{s.FullCode , s.Name , s.Description });

        return Json(search, JsonRequestBehavior.AllowGet);
    }

    public JsonResult AutoCompleteProductName(string term , string t)
    {
        AccountingDataLayer.AccountingSMSEntities context = new AccountingDataLayer.AccountingSMSEntities();
        var result = (from p in context.Products
                      where p.Name.ToLower().Contains(term.ToLower()) || p.FullCode.ToLower().Contains(t.ToLower())
                      select new { p.Name , p.FullCode }).Distinct();
        return Json(result, JsonRequestBehavior.AllowGet);
    } 

    $("#search").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "/InVoiceStock/AutoCompleteProductName",
                type: "POST",
                dataType: "json",
                data: { term: request.term , t: request.t },
                success: function (data) {
                    response($.map(data, function (item , t) {
                        return { label: item.Name, value: item.Name, label: t.FullCode, value: t.FullCode };
                    }))
                }
            })
        },
        messages: {
            noResults: "", results: ""
        }
    });                  
});'
  • 0
    Вы используете Microsoft Visual Studio? Вы используете .net? Winforms? WPF?
Теги:
asp.net-mvc
jquery-ui-autocomplete

1 ответ

0

Вы без необходимости создали целый набор переменных t. Объект запроса будет иметь только одно свойство term, которое ссылается на значение, которое в настоящее время присутствует в текстовом вводе. Таким образом, request.t не будет указан здесь

data: { term: request.term , t: request.t }

Двигаясь вперед, в методе действий string t будет пустой и не будет использоваться при фильтрации

var result = (from p in context.Products
    where p.Name.ToLower().Contains(term.ToLower()) || p.FullCode.ToLower().Contains(t.ToLower())
    select new { p.Name , p.FullCode }).Distinct();

Чтобы исправить это, в term use where в обоих условиях удалите ненужные ссылки на t

Ещё вопросы

Сообщество Overcoder
Наверх
Меню