Kendo UI Multiselect Tag mode - фильтр на основе введенного значения, не передающий введенный текст на сервер - PullRequest
0 голосов
/ 28 февраля 2020

Это код, который я использую для привязки Multiselect к списку в javascript. Я не там, где мне не хватает, я не получаю набранный текст в вызове ajax для получения значений. Метод вызывается на стороне контроллера, а строковый параметр, который у меня есть, возвращает ноль.

Реализуется на основе URL: https://demos.telerik.com/kendo-ui/multiselect/addnewitem

 $("#Tags").kendoMultiSelect({
                placeholder: "Select your tags",
                dataTextField: "Name",
                dataValueField: "Id",
                autoBind: false,
                maxSelectedItems: 5,
                minLength: 3,
                delay: 2000,
                //filter: "startswith",
                dataSource: {
                    transport: {
                        read: {
                            url: "/Support/Ticket/GetTags",
                            dataType: "json"
                        }
                    },
                    serverFiltering:true
                }
            });

Контроллер

public JsonResult GetTags(string text)
{
    List<Tag> tags = _tagRepository.GetAll(text).ToList();
    return Json(tags);
}

1 Ответ

0 голосов
/ 28 февраля 2020

Как уже упоминалось здесь https://www.telerik.com/forums/server-filtering-not-working-as-expected#KXcqO6xHoE6NxGuL0T2ZoQ, я думаю, вам нужно добавить опцию возврата данных

enter image description here

$(document).ready(function () {
           $("#products").kendoMultiSelect({
               placeholder: "Select products...",
               dataTextField: "ProductName",
               dataValueField: "ProductID",
               dataSource: {
                   type: "odata",
                   serverFiltering: true,
                   transport: {
                       read: {
                           url: "http://demos.kendoui.com/service/Northwind.svc/Products",
                           data: function () {                               
                               return {
                                   text: $("#products").data('kendoMultiSelect').input.val()
                               };
                           }
                       }
                   }
               }
           });
       });
...