1

我有服务,它为我提供了用户在搜索文本框中键入的前 10 条结果记录。所以在文本框的按键上有我的服务的调用。这里我使用的是 KendoUI AutoComplete,所以问题是我的服务在自动完成定义之前调用。任何人都可以有想法吗?

<input data-bind="value: searchString, valueUpdate: 'afterkeydown'"  placeholder="Search me.."/>
searchString: ko.computed({
        read: function () { },
        write: function (val) {            
           BindAutoTextBox(val);
            return false;
        }
    }).extend({ throttle: 1000 }),

function BindAutoTextBox(val){

 ServiceHelper.getData('search/users?SearchText='+val, function (data) {     

        $("#LeftSearch").kendoAutoComplete({
            dataSource: {
                data: data
            },
            dataTextField: "User_Code",
            template: '<table width="100%"><tr><td width="20%" valign="top">#:User_Code#</td><td width="30%" valign="top">#:Full_Name#</td><td width="30%" 

valign="top">#:Group_Name#</td></tr></table>'

        });

        var autoComplete = $("#LeftSearch").data("kendoAutoComplete");
        // set width of the drop-down list
        autoComplete.list.width(355);

    }, null, 'http://abc/ApplicationRestService/', 'Users');

}

谁能给我简短的详细代码解决方案?

4

2 回答 2

2

我使用自动完成 kendoUI 的 setDataSource 找到了我的解决方案,您可以从您的服务中更改您的数据源,这将在按键上调用...

<input id="autocomplete" />
<script>
$("#autocomplete").kendoAutoComplete({
  dataSource: [ "Apples", "Oranges" ]
});
var dataSource = new kendo.data.DataSource({
  data: [ "Bananas", "Cherries" ]
});
var autocomplete = $("#autocomplete").data("kendoAutoComplete");
autocomplete.setDataSource(dataSource);
</script>



 $("#autocomplete").keyup(function (e) {

    var autocomplete = $("#autocomplete").data("kendoAutoComplete");
     dataSource = new kendo.data.DataSource({
                        data: ["Apples", "Oranges","Bananas", "Cherries"]
                    });
     autocomplete.setDataSource(dataSource);                

});
于 2013-11-22T06:38:59.710 回答
0

我是从我的 ipad 上输入这个的,所以目前我不能提供任何示例代码,但你似乎在倒退。您自己向服务器询问数据,然后使用结果创建剑道自动完成功能。此外,每次您在框中输入文本时,都会创建自动完成功能。使用 kendo 的正确方法是在页面加载时创建自动完成功能,并设置其数据源以查询服务器。您根本不需要敲除代码或 getData 函数。当字符被自己输入到输入框中时,自动完成小部件将使用其数据源获取数据。查看http://demos.kendoui.c​​om/web/autocomplete/index.html上的示例

于 2013-11-18T15:27:44.530 回答