从ajax数据中创建下拉列表中的数据绑定

时间:2014-06-10 05:38:02

标签: c# javascript .net ajax asp.net-mvc-4

我在cshtml页面中创建了以下下拉列表:

@(  Html.Kendo().DropDownList().Name("ddlCode").OptionLabel("Select Code...").BindTo(@ViewBag.dropDown)
            .DataTextField("Title")
            .DataValueField("domainCode")

我在检查我页面上的一个复选框时绑定了这个下拉列表。

在检查复选框时,我调用了javascript函数并编写了如下的ajax脚本:

var ddl = $('#ddlCode').data("kendoDropDownList");
            $.ajax({
                url: "/PP/BindDropDown",
                data: {
                    'Id': paramID
                },
                dataType: "json",
                type: 'POST',
                cache: false,
                success: function (_data) {

                    ddl.dataSource.data(_data)

                },
                error: function () {
                    //
                }
            });

PPController的BindDropdown包含代码:

public JsonResult BindDropDown(string ID)
        {
            List<TEAMS_PP.Entity.correlations> list = new correlation().getDropDownvalues(ID);
            ViewBag.dropDown = list;
            return Json(list);
        }

我的问题是当下拉列表被绑定时,它会将其项目显示为“Undefined”,如下所示:

enter image description here

如何绑定此下拉列表???

我正在使用MVC4 Kendo UI Controls

Entity.Correlations:

   public correlations() { }

    public correlations(DB.EH_PP_DmainComp item)
    {
        //this.code = Convert.ToInt32( Convert.ToString(item.domainCode));
        this.correlatedText = item.description;
        this.codeTitle = item.title;
        //Component 1a: Demonstrating Knowledge of Content and Pedagogy
        //ArrayList arrCode = new ArrayList();
        string[] arrCode = Convert.ToString(item.title).Split(':');

        string[] code = Convert.ToString(arrCode[0]).Split(' ');
        this.code = Convert.ToString(code[1]);

    }

    public DB.EH_PP_DmainComp ToDB()
    {
        var rec = new DB.EH_PP_DmainComp();

        return rec;
    }

    public DB.EH_PP_DmainComp ToDB(DB.EH_PP_DmainComp rec)
    {

        return rec;
    }
}

1 个答案:

答案 0 :(得分:1)

这里发生了什么......

@(Html.Kendo().DropDownList().Name("ddlCode").OptionLabel("Select Code...").BindTo(@ViewBag.dropDown)
        .DataTextField("Title")
        .DataValueField("domainCode")

您告诉DropDownListTitle课程中找到domainCodecorrelations属性。但是,correlations类没有这样的属性。

要完成这项工作,您必须执行以下操作之一:

  1. TitledomainCode属性添加到correlations
  2. 使用公开此属性的其他模型对象,以便下拉列表可以绑定到它