我在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;时,我仍未获得所选值。在网格行上。感觉就像我在这附近,帮忙!
答案 0 :(得分:1)
问题是您的编辑模板的模型是您的整个模型,而不是@model string
@(Html.Kendo().DropDownListFor(m => m)
.DataTextField("Text")
.DataValueField("Value")
.DataSource(x =>
x.Read(read => read.Action("GetCompanies", "AddEntry"))
)
)
属性(顺便说一下,属性的名称非常糟糕。您需要遵循标准命名约定。)
您甚至不需要填写下拉列表。
你的编辑模板应该是这样的:
{{1}}