Kendo dropdown rebind en utilisant jquery

entrez la description de l'image ici

J’essaie de lier une liste d’éléments SelectList à un menu déroulant Kendo dans jQuery à l’aide de l’ dropDown.setDataSource(result) . Mais le problème est que les données affichées dans la liste déroulante sont affichées sous la forme [object object] .

  $(document).ajaxStop(function () { var exportTypeDropDown = $("#exportTypeDropDown").data("kendoDropDownList"); if (dropDownLoaded == false && exportTypeDropDown!=null) { dropDownLoaded = true; var url = "@Url.Action("GetExportTypes", UiControls.ControllerName)"; $.ajax({ url: url, type: "POST", traditional: true, success: function (result) { exportTypeDropDown.setDataSource(result); } }); } }); 

Essayez ceci, ceci est juste exemple,

  @Html.DropDownList("CustomerId", (SelectList)ViewBag.CustomerNameID, "--Select--") @(Html.Kendo().DropDownList() .Name("ddlSearchPNResults") .DataTextField("Text") .DataValueField("Value") .AutoBind(false) .CascadeFrom("CustomerId")) 

Scénario

  $(document).ready(function () { $("#CustomerId").change(function () { var ddl = $('#ddlSearchPNResults').data("kendoDropDownList"); var Id = $("#CustomerId").val(); $.ajax({ url: '@Url.Action("GetCustomerNameWithId", "Test")', type: "Post", data: { CustomerNameId: Id }, success: function (listItems) { ddl.setDataSource(listItems); } }); }); }); 

Manette

  public JsonResult GetCustomerNameWithId(ssortingng CustomerNameId) { int _CustomerNameId = 0; int.TryParse(CustomerNameId, out _CustomerNameId); var listItems = GetCustomerNameId(_CustomerNameId).Select(s => new SelectListItem { Value = s.CID.ToSsortingng(), Text = s.CustomerName }).ToList(); return Json(listItems, JsonRequestBehavior.AllowGet); } 

Cela fonctionne parfaitement.

En effet, kendo ne sait pas à quelle propriété de l’object SelectListItem vous souhaitez SelectListItem une liste déroulante Value et Text .

 $('#exportTypeDropDown').kendoDropDownList({ dataTextField: "Text", dataValueField: "Value", autoBind: false }); 

Assurez-vous de le faire avant de définir sa dataSource .