Kendo DropDownList 默认选中值
Posted
技术标签:
【中文标题】Kendo DropDownList 默认选中值【英文标题】:Kendo DropDownList default selected value 【发布时间】:2014-10-05 17:38:03 【问题描述】:我有一个剑道下拉列表:
@(html.Kendo().DropDownList()
.Name("concessions")
.HtmlAttributes(new style = "width:320px" )
.DataTextField("Description")
.DataValueField("Id")
.DataSource(source =>
source.Read(read =>
read.Action("getConcessionsDDL", "MasterData");
);
)
)
从控制器中的getConcessionsDDL
方法读取数据源:
public ActionResult GetConcessionsDDL()
ConcessionModel cm = new ConcessionModel();
var aux = cm.getConcessions();
return Json(aux.concessions.Select(sme => new ConcessionModel Description = sme.concession.mediumDescription, Id = sme.concession.id ).Distinct(), JsonRequestBehavior.AllowGet);
它工作正常,DropDownList 按预期填充。但现在我想定义它的默认选择值。现在,默认值始终是列表的第一个。
我使用了.SelectedIndex(4)
,它可以工作:在这种情况下,选定的索引将为 4。但我想在控制器中定义它。
我尝试在ViewBag
中传递选定的索引,但没有成功:
ViewBag.selectedIndex = 21;
在视图中:
@(Html.Kendo().DropDownList()
.Name("concessions")
.HtmlAttributes(new style = "width:320px" )
.DataTextField("Description")
.DataValueField("Id")
.DataSource(source =>
source.Read(read =>
read.Action("getConcessionsDDL", "MasterData");
);
)
.SelectedIndex(ViewBag.selectedIndex)
)
到目前为止没有运气。有什么帮助吗?
【问题讨论】:
不应该是 .SelectedIndex(ViewBag.selectedIndex) 吗?查看包。 selectedIndex 不是 ViewBag.SelectedIndex 注意到了,但ViewBag
值不区分大小写,所以ViewBag.selectedIndex
= ViewBag.SelectedIndex
为什么不把剑道下拉列表重命名为你的视图模型中的东西(例如你的'Id'属性)?这样selectedindex会自动设置,而不是通过viewbag传入。
@kryptonkal,你的意思是.Name("Id")
?我看不出这将如何将 id 值绑定到 Road 模型,因为有很多 id。 getConcessionsDDL
方法带来了数据库的所有让步,不受任何其他模型的约束。
您正在让用户选择一个特许权,那么为什么不在您的视图模型中拥有一个 ConcessionId 属性。只需将其用作控件名称并在页面加载时分配属性即可。
【参考方案1】:
解决方案很简单,将值添加为 HTML 属性就可以了:
.HtmlAttributes(new value = ViewBag.ConcessionId )
像这样:
@(Html.Kendo().DropDownList()
.Name("concessions")
.HtmlAttributes(new style = "width:320px" )
.DataTextField("Description")
.HtmlAttributes(new value = ViewBag.ConcessionId )
.DataValueField("Id")
.DataSource(source =>
source.Read(read =>
read.Action("getConcessionsDDL", "MasterData");
);
)
)
【讨论】:
以上是关于Kendo DropDownList 默认选中值的主要内容,如果未能解决你的问题,请参考以下文章
HTML.Kendo().Dropdownlist 设置默认项
Angular 2 如何禁用 kendo-dropdownlist