我正在使用带有mvc。
的kendo ui自动完成小部件我的index.cshtml文件如下,
<div class="filter-value">
@(Html.Kendo().AutoComplete()
.Name("InspectorId")
.DataTextField("RPersonDetails")
)
</div>
我没有把数据源放在这里,而是想用javascript绑定它。
我的javascript代码如下,
wireEvents: function () {
$("#InspectorId").bind("keyup", function () { AISApp.Page.populateDropDown($(this).val()) });
},
populateDropDown: function (value) {
var dataSource = new kendo.data.DataSource({
transport: {
read: {
url: AISApp.Page.getSuburbsURL,
data: {
text: value
}
}
}
});
var dd = $('#InspectorId').data("kendoAutoComplete");
dd.setDataSource(dataSource);
},
这有效,但只是想知道这是正确的方法吗?或者有没有办法在不使用keyup事件的情况下完成,只需使用kendo事件?
由于
答案 0 :(得分:1)
在.cshtml中,有一种方法可以使用Kendo助手通过您的URL绑定到DataSource。然后,您可以在按下某个键时自动重新读取URL中的数据。 基本上它会将您的javascript密钥代码移动到帮助程序的代码中。
代码看起来像这个例子:
<div class="filter-value">
@(Html.Kendo().AutoComplete()
.Name("InspectorId")
.DataTextField("RPersonDetails")
.Filter("contains")
.DataSource(source => {
source.Read(read =>
{
read.Action("GetProducts", "Home")
.Data("onAdditionalData");
})
.ServerFiltering(true);
})
)
</div>
<script>
function onAdditionalData() {
return {
text: $("#InspectorId").val()
};
}
</script>