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

Posted

技术标签:

【中文标题】HTML.Kendo().Dropdownlist 设置默认项【英文标题】:HTML.Kendo().Dropdownlist set default item 【发布时间】:2013-08-11 13:50:15 【问题描述】:

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

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

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

有人知道这是正确的方法吗?如果是,那么我们该怎么做?不然有没有其他办法解决呢?

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

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

 )

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

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

【问题讨论】:

【参考方案1】:

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

$("#dropdownlist").kendoDropDownList(
     dataSource: ["Car", "Bike", "T.V", "--Select One--"],
     value: "--Select One--"
);

【讨论】:

【参考方案2】:

我能够让它工作的唯一方法是处理 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 事件是最好的方法。

【讨论】:

+1 这个解决方案对我有用。我们需要额外的脚本来从(视图)模型数据中设置选定的索引,这似乎很愚蠢;但这是 Telerik 的抱怨 @MacSalty 我感觉这实际上已在最新版本的 Kendo 中得到修复。你是最新的吗?

以上是关于HTML.Kendo().Dropdownlist 设置默认项的主要内容,如果未能解决你的问题,请参考以下文章

kendo 网格控件中的 DropDownList(通过 ClientTemplate)

Kendo DropdownList 从模型中设置值

Kendo UI 将 DropDownList 添加到 Grid (MVC)

Kendo DropDownList 问题在 MVC 上调用操作

带有添加参数的 Kendo DropdownList 服务器过滤

Kendo DropdownList MVC在读取成功时绑定JS函数