我有一个像这样设置可编辑的网格:
.Editable(e =>
{
e.Enabled(true);
e.Mode(GridEditMode.PopUp);
e.TemplateName("MyEdit");
e.Window(w => w.Title("Gadzooks"));
}
在MyEdit.cshtml中我有这样的事情:
<div>
@Html.LabelFor(m => m.Type)
@Html.EditorFor(m => m.Type, "MyTypeListEdit", Model.Type);
</div>
最后在编辑器MyTypeListEdit.cshtml中:
@model object
@{
string selectedValue = (string)Model;
}
@{
SelectList selectList = new SelectList(
new SelectListItem[] {
new SelectListItem()
{
Text = "Primary",
Value = "Primary",
Selected = true
},
new SelectListItem()
{
Text = "Secondary",
Value = "Secondary"
}
},
"Text",
"Value"
);
@(
Html.Kendo().DropDownListFor(model => model)
.Name("Type")
.BindTo(selectList)
.DataValueField("Value")
.DataTextField("Text")
.Value(selectedValue)
)
}
当Model的类型为Secondary时,它仍然选择Primary。 (我假设某处有断开连接)。如何从可编辑()中设置的另一个模板中获取正在引用的编辑器模板,以实际选择适当的值。 Kendo UI文档很糟糕。
答案 0 :(得分:0)
显然,您需要使用Read来调用此方法以及顶部的@model对象。另外,请勿使用name属性,以使其与自动绑定的属性名称匹配。
@model object
@{
@(Html.Kendo().DropDownListFor(model => model)
.DataTextField("Text")
.DataValueField("Value")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetMyList", "MyController");
});
}
))
}