Drop down menu HTML.Kendo().Dropdownlist设置默认项

Drop down menu HTML.Kendo().Dropdownlist设置默认项,drop-down-menu,telerik,kendo-ui,default-value,html,Drop Down Menu,Telerik,Kendo Ui,Default Value,Html,如何在HTML.Kendo().Dropdownlist().HTMLAttribute()中设置默认项 虽然我已经按代码设置了它,但不知怎么的,它从列表中选择了一个默认项,并将其显示为第一位 可能是从代码的某个地方得到的。但我无法找到。这就是为什么我想从其他地方设置默认项(“--Select-->”)。 我正在考虑从.HTMLAttributes()设置它 是否有人知道这是正确的方法?如果是的话,我们怎么做?否则就没有别的办法了吗 我使用以下代码绑定剑道下拉列表: @(Html.Kendo

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

虽然我已经按代码设置了它,但不知怎么的,它从列表中选择了一个默认项,并将其显示为第一位

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

是否有人知道这是正确的方法?如果是的话,我们怎么做?否则就没有别的办法了吗

我使用以下代码绑定剑道下拉列表:

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

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


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

我对KendoUI很陌生,但我相信您可以使用.value属性设置默认值:


我能够让它工作的唯一方法是处理数据绑定事件,并在那里设置默认值

在本例中,我绑定到服务器上的一个操作,因此您可能只需要.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>
@(Html.Kendo().DropDownListFor(model=>model.salersonid)
.DataTextField(“全名”)
.DataValueField(“ID”)
.Events(ev=>ev.DataBound(“Salesersonid_DataBound”))
.DataSource(source=>
{
source.Read(Read=>
{
阅读.行动(“GetSalesorsOnlist”、“提案”);
});
})
)
//设置DropDownList的默认值。
函数salersonid_DataBound(){
此.value(“@Model.salersonid”);
}

我怀疑问题在于:如果该值是在绑定之前或绑定期间设置的,那么它就会丢失。您需要在绑定完成后立即进行设置,而数据绑定事件是最好的方法。

+1此解决方案对我很有效。我们需要额外的脚本来设置从(视图)模型数据中选择的索引,这似乎很愚蠢;但这是对我的抱怨Telerik@MacSalty我有一种感觉,在剑道的最新版本中,这实际上是固定的。你有最新消息吗?
            @(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>