Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kendo ui 剑道ui自动完成,如何绑定加载数据?_Kendo Ui - Fatal编程技术网

Kendo ui 剑道ui自动完成,如何绑定加载数据?

Kendo ui 剑道ui自动完成,如何绑定加载数据?,kendo-ui,Kendo Ui,我正在使用带有mvc的剑道ui自动完成小部件 我的index.cshtml文件如下所示 <div class="filter-value"> @(Html.Kendo().AutoComplete() .Name("InspectorId") .DataTextField("RPersonDetails") ) </div> wireEvents: function () { $("#InspectorId").bind("k

我正在使用带有mvc的剑道ui自动完成小部件

我的index.cshtml文件如下所示

<div class="filter-value">
    @(Html.Kendo().AutoComplete()
    .Name("InspectorId")
    .DataTextField("RPersonDetails") 
    )
</div>
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事件,只使用剑道事件


谢谢

在.cshtml中,有一种方法可以使用剑道助手使用URL绑定到数据源。然后,您可以让它在按下某个键时自动从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>

@(Html.Kendo().AutoComplete())
.姓名(“检查员”)
.DataTextField(“RPersonDetails”)
.过滤器(“包含”)
.DataSource(source=>{
source.Read(Read=>
{
阅读.行动(“获取产品”、“主页”)
.数据(“非附加数据”);
})
.ServerFiltering(true);
})
)
附加数据()上的函数{
返回{
文本:$(“#检查ID”).val()
};
}

我试图避免使用此。。因为它创建了全局javascript函数。以后没有其他绑定方法吗?您不能使用MVC扩展,而是用javascript创建小部件。那你就可以避开全局。我不明白自动完成是怎么得到数据的。似乎需要在控制器中加载一个列表: