jquery - example - multiselect kendo ui mvc
Kendo dropdown revind utilizando jquery (2)
Estoy intentando vincular una lista de Elementos de la lista de selección al menú desplegable de kendo en jquery utilizando el evento dropDown.setDataSource (result) pero estoy enfrentando un problema como que los datos mostrados en el menú desplegable se muestran como [objeto objeto] ayúdenme y la captura de pantalla de la lista desplegable Subí a continuación y el código es
$(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);
}
});
}
});
Esto se debe a que SelectListItem
no sabe qué propiedad del objeto de SelectListItem
quiere vincular con el Value
y el Text
desplegables.
$(''#exportTypeDropDown'').kendoDropDownList({
dataTextField: "Text",
dataValueField: "Value",
autoBind: false
});
Asegúrese de hacer esto antes de configurar su dataSource
.
Prueba esto, esto es solo un ejemplo,
@Html.DropDownList("CustomerId", (SelectList)ViewBag.CustomerNameID, "--Select--")
@(Html.Kendo().DropDownList()
.Name("ddlSearchPNResults")
.DataTextField("Text")
.DataValueField("Value")
.AutoBind(false)
.CascadeFrom("CustomerId"))
Guión
$(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);
}
});
});
});
Controlador
public JsonResult GetCustomerNameWithId(string CustomerNameId)
{
int _CustomerNameId = 0;
int.TryParse(CustomerNameId, out _CustomerNameId);
var listItems = GetCustomerNameId(_CustomerNameId).Select(s => new SelectListItem { Value = s.CID.ToString(), Text = s.CustomerName }).ToList<SelectListItem>();
return Json(listItems, JsonRequestBehavior.AllowGet);
}
Está funcionando perfectamente.