【问题标题】:Kendo UI DropDownListFor Set SelectedValueKendo UI DropDownListFor 设置 SelectedValue
【发布时间】:2016-11-08 19:53:29
【问题描述】:

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

这是列代码:

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

这里是编辑器模板代码:

@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 仍然会填充,但是当我单击网格行上的“编辑”时,我仍然没有得到选定的值。感觉我就在附近,救命!

【问题讨论】:

  • 我建议首先查看自定义编辑器演示 (demos.telerik.com/aspnet-mvc/grid/editing-custom) 和外键列演示 (demos.telerik.com/aspnet-mvc/grid/foreignkeycolumn)。请注意,为了查看正在发生的一切,您必须打开随 Kendo MVC 一起安装的演示项目,因为在线 MVC 演示不会显示每个感兴趣的文件,在这种情况下自定义编辑器演示,它没有显示 EditorTemplate,演示项目应该在这里找到:\wrappers\aspnetmvc\Examples
  • GetCompanies 返回什么?您可以发布示例数据吗?

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


【解决方案1】:

问题是您的编辑器模板的模型是您的整个模型,而不是 company_business_name 属性(顺便说一下,属性名称非常糟糕。您需要遵循标准命名约定)。

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

您的编辑器模板应该是这样的:

@model string

@(Html.Kendo().DropDownListFor(m => m)
    .DataTextField("Text")
    .DataValueField("Value")
    .DataSource(x => 
        x.Read(read => read.Action("GetCompanies", "AddEntry"))
    )
)

【讨论】:

  • 感谢 ataravati,我修改了代码以反映您的建议。 DDL 填充但仍未获得选定的值。你正在向合唱团宣传命名约定,但我继承了这个小怪物。
  • @TrevorGoodchild 在你的 DDL 中,尝试设置 .ValuePrimitive(true) 看看是否有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多