HTML.Kendo()。Dropdownlist设置默认项目

时间:2013-08-09 15:08:05

标签: drop-down-menu telerik kendo-ui default-value html

如何在HTML.Kendo()中设置默认项目.Dropdownlist()。HTMLAttribute()?

虽然我已经通过代码设置了它。但不知何故,它从列表中取出一个默认项目并将其显示为第一位。

enter image description here

  
    

可能是它从代码中获取它。但我无法找到。这就是为什么我想从其他地方设置默认项目(“ - 选择 - ”)。     我正在考虑从.HTMLAttributes()。

设置它   

有人知道它是否是正确的方法?如果是,那我们该怎么办呢?否则,还有其他方法可以解决它吗?

我使用下面的代码来绑定Kendo下拉列表:

 @(Html.Kendo().DropDownList()
  .Name("SelectedMediaType")  
  .DataTextField("Text")
  .DataValueField("Text")    
  .Value(Model)                                    
  .BindTo(ViewBag.MediaTypes)

 )

我在其中使用ViewBag.MediaTypes绑定Dropdownlist。

有没有办法在用viewbag绑定后设置默认值?

2 个答案:

答案 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事件是执行此操作的最佳方式。