带有Kendo AutoComplete的新数据源

时间:2013-11-21 08:03:54

标签: php jquery autocomplete kendo-ui kendo-autocomplete

我遇到了Kendo AutoComplete的问题。我有一个包含几个字段的表单,我想在其中应用AutoComplete Widget。其中一些字段是在用户执行某些操作后动态创建的。

这就是我的所作所为:

function myAutoComplete() {

    $("input.autocomplete").each(function() {

        //...Some code...

        //Kendo AutoComplete
        $(this).kendoAutoComplete({

            //Data
            dataSource: new kendo.data.DataSource({
                //URL
                transport: {
                    read: {
                        url : "utils/autocomplete.php",
                        data : {case: acCase, ent: $(prefixTarget + ' input[id*="entreprise_id"]').val()},
                        cache : false
                    }
                },
                schema: {
                    data: "data"
                }
            }),
            select: function(e){     
                var dataItem = this.dataItem(e.item.index());

                switch (acCase) {
                    case 1 :
                        $(prefixTarget + ' input[id*="'+selectorTarget+'"]').val(dataItem.CLI_NUM);
                        break; 
                    case 2 :
                        $(prefixTarget + ' input[id*="'+selectorTarget+'"]').val(dataItem.ENT_NUM);
                        break;  
                    case 3 :
                        $(prefixTarget + ' input[id*="'+selectorTarget+'"]').val(dataItem.SUC_NUM);
                        break; 
                    case 4 :
                        $(prefixTarget + ' input[id*="'+selectorTarget+'"]').val(dataItem.id);
                        break;     
                }
            },
            filter: "contains",
            highlightFirst: true,
            suggest: true,
            dataTextField: "SearchField"

        //End Kendo AutoComplete    
        });
    //End each
    });   
//End function
};

当文档准备好或创建新元素时,将调用此函数。一切正常!

我注意到,当用户第一次在字段中输入内容时,只调用一次dataSource。我想做的是每次用户进入某个字段时调用“dataSource”,因为“transport”中传递的某些数据可能已被更改。在某种程度上,我只想再次调用名为“autocomplete.php”的文件,以使用新参数进行新查询。

我在互联网和Kendo UI的文档中进行了搜索,但没有找到如何制作它。

有人可以向我解释我做错了吗?

1 个答案:

答案 0 :(得分:1)

这是因为默认过滤是在客户端执行的。您需要启用服务器端过滤器,并将serverFiltering选项设置为true。