2016-01-20 3 views
0

Я использую kendo multiselect control для моего приложения MVC, где я пытаюсь связать multiselect, но он не работает. Ниже мой HTML-код:Kendo multi select binding не работает

@(Html.Kendo().MultiSelect() 
    .Name("ajaxTags") 
    .Placeholder("Select cities...") 
    .AutoBind(false) 
    .DataTextField("CityName") 
    .DataValueField("CityCode") 
    .Filter(FilterType.StartsWith) 
    .BindTo(new SelectList("CityCode","CityName")) 
    .DataSource(source => 
    { 
     source.Read(read => 
     { 
      read.Action("GetCities", "DutyTravel"); 
     }); 
     source.ServerFiltering(true);      
    }) 
    .HtmlAttributes(new { style = "width: 60%;" }) 
) 

Итак, здесь я использую AutoBind(false) так только тогда, когда пользователь расширяется, то он делает запрос на сервер и получает данные.

А ниже мой код контроллера:

public JsonResult GetCities([DataSourceRequest] DataSourceRequest request) 
{  
    List<DutyTravelPerDiemMaster> lstCities = null; 
    lstCities = (List<DutyTravelPerDiemMaster>)HttpContext.Session["GetPerdiemList"]; 
    var lstFilteredCity = from d in lstCities 
           select new 
           { 
            CityCode = d.CityCode, 
            CityName = d.CityName 
           }; 


    return Json(lstFilteredCity.ToList().ToDataSourceResult(request), JsonRequestBehavior.AllowGet); 
} 

В этом методе, я вижу, что все коды городов и название городов являются заселять, но не отображаются в множественном выборе.

ответ

0

Вы пытаетесь сделать Server и Ajax связывать вместе. Предполагая, что вы хотите сделать Ajax привязки, удалите эту строку:

.BindTo(new SelectList("CityCode","CityName")) 
+0

Hi mmilican, Спасибо за ваш ответ я удалил эту строку и добавил эта строка .Value ((IEnumerable ) ViewData ["cityValues"]) здесь значение viewdata Я сохраняю результат json, но все еще не работает. – Vikash

0

согласно Teleriks Кендо UI демо не требуется, чтобы установить свойство bindTo. посмотрите на кусок кода, который является копией и вставить из их демо раздела:

@(Html.Kendo().MultiSelect() 
     .Name("products") 
     .DataTextField("ProductName") 
     .DataValueField("ProductID") 
     .Placeholder("Select products...") 
     .AutoBind(false)  
     .DataSource(source => { 
      source.Read(read => 
      { 
       read.Action("GetProducts", "Home"); 
      }) 
      .ServerFiltering(true); 
     }) 
) 

для получения дополнительной информации просто перейдите по ссылке: http://demos.telerik.com/aspnet-mvc/multiselect/serverfiltering

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