kendo ui autocomplete,如何绑定加载数据?

时间:2013-06-19 02:52:26

标签: kendo-ui

我正在使用带有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事件?

由于

1 个答案:

答案 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>