更改kendo ui下拉列表的选定值

ani*_*lca 45 javascript asp.net-mvc jquery telerik kendo-ui

我的视图中有一个kendo ui下拉列表:

$("#Instrument").kendoDropDownList({
    dataTextField: "symbol",
    dataValueField: "symbol",
    dataSource: data,
    index: 0
});
Run Code Online (Sandbox Code Playgroud)

如何使用jQuery更改它的选定值?我试过了:

$("#Instrument").val(symbol);
Run Code Online (Sandbox Code Playgroud)

但它没有按预期工作.

Ona*_*Bai 73

您必须使用Kendo UI DropDownList select方法(此处的文档).

基本上你应该:

// get a reference to the dropdown list
var dropdownlist = $("#Instrument").data("kendoDropDownList");
Run Code Online (Sandbox Code Playgroud)

如果您知道可以使用的索引:

// selects by index
dropdownlist.select(1);
Run Code Online (Sandbox Code Playgroud)

如果没有,请使用:

// selects item if its text is equal to "test" using predicate function
dropdownlist.select(function(dataItem) {
    return dataItem.symbol === "test";
});
Run Code Online (Sandbox Code Playgroud)

JSFiddle示例在这里

  • @anilca 如果不知道索引,也可以按文本选择(dataItem.Text) (2认同)
  • 如果KendoDropdown发生`change`事件,则必须在调用`select`之后通过调用`dropdownlist.trigger(“ change”);`手动触发它。 (2认同)

Gan*_*ang 30

最简单的方法是:

$("#Instrument").data('kendoDropDownList').value("A value");
Run Code Online (Sandbox Code Playgroud)

这是JSFiddle示例.


小智 5

由于这是与此相关的问题的热门搜索结果之一,因此我觉得值得一提的是如何使用Kendo()。DropDownListFor()来实现此目的。

一切与OnaBai的帖子相同,除了您如何根据其文字和选择器选择项目。

为此,您可以将dataItem.symbol换成dataItem。[DataTextFieldName]。无论将用于.DataTextField()的哪个模型字段作为比较对象。

@(Html.Kendo().DropDownListFor(model => model.Status.StatusId)
    .Name("Status.StatusId")
    .DataTextField("StatusName")
    .DataValueField("StatusId")
    .BindTo(...)
)

//So that your ViewModel gets bound properly on the post, naming is a bit 
//different and as such you need to replace the periods with underscores
var ddl = $('#Status_StatusId').data('kendoDropDownList');    

ddl.select(function(dataItem) {
    return dataItem.StatusName === "Active";
});
Run Code Online (Sandbox Code Playgroud)


ruf*_*fin 5

似乎有一种更简单的方法,至少在Kendo UI v2015.2.624中:

$('#myDropDownSelector').data('kendoDropDownList').search('Text value to find');
Run Code Online (Sandbox Code Playgroud)

如果下拉菜单中没有匹配项,那么Kendo似乎会将下拉菜单设置为未选择的值,这很有意义。


我无法获得@Gang的工作答案,但如果您像上面那样value@交换他search,那我们就很成功了。