2014-01-22 5 views
2

У меня есть сетка, которая будет загружать данные в виде фильтруемого поля, поэтому мне нужно создать собственный фильтр для этого столбца с фильтруемым полем со списком.Kendo Grid Пользовательский фильтр comboBox

Я создаю поле со списком и назначаю его в пользовательский интерфейс фильтра столбцов. Моя проблема в том, когда combobox считывает данные с контроллера, он не отправляет текст фильтра в контроллер.

<script type="text/javascript"> 
function outletFilter(element) { 
     debugger; 
        element.kendoComboBox({ 
        dataTextField: "OutletNameE", 
         dataValueField: "OutletID", 
        autoBind: false, 
        minLength: 1, 
         dataSource: { 
         serverFiltering: true, 
         transport: { 
          read: "@Url.Action("GetOutletsCombo")" 
          } 
          },               
         optionLabel: "--Select Value--" 
        }); 
        } 

    </script> 

@(Html.Kendo().Grid<Spine.ERP.ViewModel.AccountReceivableOutletViewModel>() 
    .Name("ARDetails_OutletGrid") 
    .Columns(columns => 
    { 

     columns.Bound(p => p.AccountReceivableID).Hidden(); 
     columns.Bound(p => p.AccountReceivableOutletID); 
     columns.Bound("Outlet.OutletName") 
      .EditorTemplateName("OutletForeignKeyEditor") 
      .ClientTemplate("<a>#=OutletID ##=OutletID? '-' : ' ' ##=OutletID ? 

Outlet.OutletName : ' ' #</a>") 
.Filterable(filter => filter.UI("outletFilter"));  
     }) 

А вот моя функция контроллера

public ActionResult GetOutletsCombo(string text) 
     { 
      if (text == null) 
       text = ""; 
      var result = new List<OutletViewModel>(); 
      var Outlets = outletRepository.FilterOnID("Outlet", new string[] { "OutletID", "OutletNameE" }, text).ToList(); 
      result = (from outlet in Outlets 
         select new OutletViewModel 
         { 
          OutletID = outlet.OutletID, 
          OutletNameE = outlet.OutletNameE, 
          OutletNameA = outlet.OutletNameA 
         }).ToList(); 
      return Json(result, JsonRequestBehavior.AllowGet); 
     } 

ответ

3

Прежде всего, если вы выполняете «читать», он не посылает никаких дополнительных значение на контроллер так в «публичный ActionResult GetOutletsCombo (строка текста) «вы не получите никакой ценности в« тексте ».

Для сервера фильтрации вы можете увидеть демонстрацию Кендо на следующей странице

http://demos.kendoui.com/web/combobox/serverfiltering.html 

Насколько я получаю от вашего вопроса, вы хотите сделать Кендо сетку и там вы хотите иметь выпадающий для фильтрации данные в сетке. В этом случае, вы можете проверить подобный род демы на сайте кендо в

http://demos.kendoui.com/web/grid/toolbar-template.html 

Для меню фильтра вы можете проверить это на кендо под ASP.NET MVC

http://demos.kendoui.com/web/grid/filter-menu-customization.html 

Надеется, что вы можете работать вашу проблему из этих примеров. Если вы не можете добавить комментарий к этому сообщению. Я попробую еще раз, чтобы помочь вам.

+1

Спасибо за ваш ответ. Я хочу изменить фильтр фильтра по умолчанию внутри столбца из текстового поля в фильтруемое поле со списком, чтобы оно было похоже на поле данных столбцов, а не на панели инструментов. –

+0

@WaelJoulani в этом случае вы проверили это http://demos.kendoui.com/web/grid/filter-menu-customization.html? Позвольте мне знать, если это помогает. – Mahib

+0

Да, я проверяю его, и я добавляю поле со списком в столбец фильтра, но моя проблема заключается в том, что я пытаюсь фильтровать внутри этого поля со списком искомый текст, не отправленный на контроллер –

Смежные вопросы