2013-09-09 6 views
1

У меня есть две коробки KendoDropDownList, первая загрузка очень хорошая. Второй каскад от первого и должен загружать простой массив/список строк, возвращаемых как json. Я вижу, что GetDistinctImportDates возвращает заполненный JsonResult, как я ожидал.Kendo DropDownList не заполняет список строк json

Что мне не хватает?

 public JsonResult GetDistinctImportDates(string clientid) 
    { 
     IEnumerable<string> importDates = null; 

     var dates = client.GetStringAsync(string.Format("api/ImportHeader/distinctdates/{0}", clientid)).Result; 
     if (!string.IsNullOrWhiteSpace(dates)) 
     { 
      importDates = JsonConvert.DeserializeObject<IEnumerable<string>>(dates); 
     } 

     return Json(importDates, JsonRequestBehavior.AllowGet); 
    } 


    <div id="clientsArea"> 
    @(
     Html.Kendo().DropDownList() 
      .Name("clients") 
      .OptionLabel("Select Client...") 
      .DataValueField("ClientId") 
      .DataTextField("ClientName") 
      .DataSource(source => { 
       source.Read(read => 
       { 
        read.Action("GetClients", "Home"); 
       }); 
      }) 
    ) 
</div> 
<div id="datesArea"> 
    @(
     Html.Kendo().DropDownList() 
      .Name("importDates") 
      .CascadeFrom("clients") 
      .OptionLabel("Select Import Date...") 
      .DataSource(source => { 
       source.Read(read => 
       { 
        read.Action("GetDistinctImportDates", "Home") 
         .Data("filterImportDates"); 
       }); 
      }) 
      .AutoBind(false) 
      .Enable(false) 
    ) 
</div> 

ответ

2

Вам необходимо включить ServerFiltering на источник данных вашего ребенка DropDown, чтобы сделать его работу:

Html.Kendo().DropDownList() 
      .Name("importDates") 
      .CascadeFrom("clients") 
      .OptionLabel("Select Import Date...") 
      .DataSource(source => { 
       source.Read(read => 
       { 
        read.Action("GetDistinctImportDates", "Home") 
         .Data("filterImportDates"); 
       }).ServerFiltering(true); 
      }) 
      .AutoBind(false) 
      .Enable(false) 

От cascading FAQ::

Q: The serverFiltering отключается, и ребенок выпадающий не работа?

A: Когда serverFiltering отключен, то combobox будет не производить никаких дополнительных запросов к серверу. Следовательно, он будет фильтровать исходные данные, используя свойство dataValueField родителя. Если не найдено ни одного элементов, то дочернее поле будет пустым. Если вам нужно, чтобы использовал дочернюю сортировку с отключенной фильтрацией сервера, вам понадобится , чтобы предоставить все необходимые данные на клиенте.

+0

В этом была проблема, большое вам спасибо. Я так никогда и не нашел. – dhamilton

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