Kendo UI DropDownListFor设置SelectedValue

时间:2016-11-08 19:53:30

标签: kendo-ui kendo-grid kendo-asp.net-mvc

我在MVC应用程序上使用Kendo UI。我们有一个网格,当用户打开行进行编辑时,我们有一个包含公司名称的dropDownList。我试图让DDL默认为与该行相关的公司名称。

这是列代码:

columns.Bound(e => e.company_business_name).Width(220).Title("Company")
    .EditorTemplateName("CompanyName");

这里是editorTemplate代码:

@model  string

@(Html.Kendo().DropDownListFor(m => m)
        .DataTextField("Text")
        .DataValueField("Value")
        .BindTo((System.Collections.IEnumerable)ViewData["Companies"])
 )

以及填充DDL的方法:

    private void PopulateCompanies()
    {
        var companyList = new List<SelectListItem>();

        if (!string.IsNullOrEmpty(Session["Companies"] as string))
        {
            companyList = (List<SelectListItem>)Session["Companies"];
        }
        else
        {
            companyList = new DataAccess().GetCompanies(CurrentSettings.getUser().userId);
            CacheCompanies(companyList);
        }

        ViewData["Companies"] = companyList;
    }

编辑:

更新了代码。 DDL仍然填充,但是当我点击&#34;编辑&#34;时,我仍未获得所选值。在网格行上。感觉就像我在这附近,帮忙!

1 个答案:

答案 0 :(得分:1)

问题是您的编辑模板的模型是您的整个模型,而不是@model string @(Html.Kendo().DropDownListFor(m => m) .DataTextField("Text") .DataValueField("Value") .DataSource(x => x.Read(read => read.Action("GetCompanies", "AddEntry")) ) ) 属性(顺便说一下,属性的名称非常糟糕。您需要遵循标准命名约定。)

您甚至不需要填写下拉列表。

你的编辑模板应该是这样的:

{{1}}