如何在HTML.Kendo()中设置默认项目.Dropdownlist()。HTMLAttribute()?
虽然我已经通过代码设置了它。但不知何故,它从列表中取出一个默认项目并将其显示为第一位。
可能是它从代码中获取它。但我无法找到。这就是为什么我想从其他地方设置默认项目(“ - 选择 - ”)。 我正在考虑从.HTMLAttributes()。
设置它
有人知道它是否是正确的方法?如果是,那我们该怎么办呢?否则,还有其他方法可以解决它吗?
我使用下面的代码来绑定Kendo下拉列表:
@(Html.Kendo().DropDownList()
.Name("SelectedMediaType")
.DataTextField("Text")
.DataValueField("Text")
.Value(Model)
.BindTo(ViewBag.MediaTypes)
)
我在其中使用ViewBag.MediaTypes绑定Dropdownlist。
有没有办法在用viewbag绑定后设置默认值?
答案 0 :(得分:3)
我对KendoUI很新,但我相信您可以使用.value属性设置默认值:http://docs.kendoui.com/api/web/dropdownlist#configuration-value
$("#dropdownlist").kendoDropDownList({
dataSource: ["Car", "Bike", "T.V", "--Select One--"],
value: "--Select One--"
});
答案 1 :(得分:3)
我能够让它工作的唯一方法是处理DataBound事件,并在那里设置默认值。
在这个例子中,我绑定到服务器上的一个动作,所以也许你只需要.Events行和最后的JavaScript:
@(Html.Kendo().DropDownListFor(model => model.SalesPersonID)
.DataTextField("FullName")
.DataValueField("ID")
.Events(ev => ev.DataBound("SalesPersonID_DataBound"))
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetSalesPersonList", "Proposal");
});
})
)
<script type="text/javascript">
//Sets the default value for the DropDownList.
function SalesPersonID_DataBound() {
this.value("@Model.SalesPersonID");
}
</script>
我怀疑问题是这样的:如果在绑定之前或期间设置了值,它就会丢失。您需要在绑定完成后立即设置它,并且DataBound事件是执行此操作的最佳方式。