4

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

虽然我已经通过代码设置了它。但是它以某种方式从列表中获取一个默认项目并将其显示为第一位。

在此处输入图像描述

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

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

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

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

 )

在其中我将 Dropdownlist 与 ViewBag.MediaTypes 绑定。

那么有没有办法在与viewbag绑定后设置默认值呢?

4

2 回答 2

3

我对 KendoUI 很陌生,但我相信您可以使用 .value 属性设置默认值:http ://docs.kendoui.c​​om/api/web/dropdownlist#configuration-value

$("#dropdownlist").kendoDropDownList({
     dataSource: ["Car", "Bike", "T.V", "--Select One--"],
     value: "--Select One--"
});
于 2013-08-10T18:53:57.450 回答
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 事件是最好的方法。

于 2014-12-23T17:59:53.193 回答