1

在此处输入图像描述

我正在尝试使用事件将SelectList项目列表绑定到 jquery 中的 Kendo 下拉列表。dropDown.setDataSource(result)但问题是,下拉列表中显示的数据显示为[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);
                    }
                });
        }
    });
4

2 回答 2

6

试试这个,这只是例子,

       @Html.DropDownList("CustomerId", (SelectList)ViewBag.CustomerNameID, "--Select--")

 @(Html.Kendo().DropDownList()
            .Name("ddlSearchPNResults")
            .DataTextField("Text")
            .DataValueField("Value")
            .AutoBind(false)
                    .CascadeFrom("CustomerId"))

脚本

 $(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);
  }


            });

            });
 });

控制器

 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);
        }

这是完美的工作。

于 2013-09-06T12:47:10.917 回答
2

那是因为 kendo 不知道SelectListItem你想用 dropdownValue和s 绑定对象的哪个属性Text

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

确保在设置其dataSource.

于 2013-09-06T11:46:28.543 回答