2016-01-20 114 views
0

我正在使用kendo multiselect控制我的MVC應用程序,我試圖綁定多選但它不工作。 下面是我的html代碼:Kendo多選擇綁定不起作用

@(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

您正在嘗試將ServerAjax綁定在一起。假設你想要做Ajax綁定,刪除此行:

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

嗨mmilican,感謝您的回覆我刪除這條線,並加入這行.Value((IEnumerable )ViewData [「cityValues」])這裏viewdata值我從json結果存儲,但仍然無法正常工作。 – Vikash

0

根據Teleriks Kendo 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