【发布时间】:2016-10-10 12:54:04
【问题描述】:
我正在编写一个剑道 UI 自动完成小部件。要求是EACH TIME,当我在“minLength”之后键入一个字母时,需要从dB EVERYTIME动态加载dataSource。一个问题是,当dataSource第一次加载成功时,它会停止加载数据。
代码sn-p是:
var data;
function getDataFromDb(){
// some code to grab dummyData from dB ...
return dummyData;
}
$("#someInputText").kendoAutoComplete({
minLength: 2,
dataTextField: "someField",
dataSource: getDataFromDb(),
filter: "startswith"
});
非常感谢。
有关帖子的更多详细信息。在我的情况下,我不使用 readOption。数据来自另一个 ajax 调用,例如:
var data [];
//fire this ajax call when input string length comes to 4...
$.ajax({url: "some working url", success: function(result){
var data = result;
startKendoAutoComplete();
}
});
function startKendoAutoComplete(){
if( !$.isEmptyObject(data)) // set a breakPoint, have data
{
$("#inputText").kendoAutoComplete({
minLength: 4,
dataSource : data,
...
});
}
}
此外,当输入字符串长度达到 4 时,将触发 ajax 调用。但是,KendoAutoComplete 不会开始工作......
非常感谢您的建议。
【问题讨论】:
-
我不明白,您要求每次用户键入内容时都从数据库动态加载数据,但只初始化一次数据并且您不想使用 readOptions...如果在初始加载后没有从服务器获取任何内容,如何重新加载数据?
-
从 DB 动态加载 day 的原因是,数据非常庞大,来自真实应用程序的近百万行。最初加载数据是不可能/不可行/禁止的。此外,加载数据的唯一方法是通过给定的 ajax 调用。非常感谢您的所有回复。
-
您如何期望在初始加载后重新加载一些过滤后的数据而不获取任何内容?
-
过滤后的数据就像,如果我输入四个字母,数据大小是可以处理的。 (目前,我尝试输入三个字母并加载初始数据。如此巨大/缓慢,然后当我输入第四个字母时,Kendo autoComplete 开始工作。)然后,当我输入第四个字母。感谢您的帮助。欣赏。
标签: dynamic kendo-ui autocomplete datasource loading