以下代码仅适用于FileNo (字段)的自动完成。我希望这个函数也适用于employee的其他属性。即FirstName、LastName
dataTextField:"FileNo“<-这里dataTextField获取sing字段。它怎么能用于多个字段呢?
发布于 2013-04-19 06:39:31
由于您知道要搜索哪些列,因此我的建议是:
LastName
...).
index.php/hr_management/manage_hr/search_employee/
(FileNo
、FirstName
、autocomplete
.
id
。
autocomplete
上显示autocomplete
.
grid
.进行过滤
发布于 2013-04-18 04:44:17
您应该使用template来更改在自动完成的下拉列表中显示的内容。那么dataTextField将只在input元素内部使用。
Here是它创建模板的方式。
发布于 2017-05-31 21:11:50
Kendo Autocomplete具有接受字段名称(例如,数据源的employeeID、employeeName等)以用于筛选项的dataTextField。
要使用多个字段,您必须在解析模式中的数据源期间,将其中一个字段设置为包含连接字段,如下所示。然后将AutoComplete的过滤器设置为"contains“
我是这样做的。
var myDataSrc = new kendo.data.DataSource({
transport: {
read: {
type:"GET",
url:clientDataURL,
dataType: "jsonp",
contentType: "application/json",
}
},
schema: {
parse: function(clntDB) {
$.each(clntDB, function(ky, clnt) {
clnt.firstName = clnt.clientUID + " | " + clnt.firstName+ " " + clnt.lastName;
});
return clntDB;
}
},
pageSize: 4 // Number of Items to show during input
});
/查看上面的 firstname ,它被重新构造为包含连接的姓氏、ID和名字字符串。
下一步是使用解析的firstName作为kendo Autocomplete的dataTextField的值。
然后var selectedClntID;/实际上,这是为了获取ID以供将来使用
$("#YOURSEARCHINPUTID").kendoAutoComplete({
dataSource: myDataSrc ,
template: tmplSrchdClnt, // YOUR TEMPLATE like "<div>firstName</div>"
dataTextField:"firstName",
filter:"contains", /// DON'T FORGET TO ADD THIS
minLength : 1 ,
select: function(e) {
var selectedClnt = this.dataItem(e.item.index()),
x = kendo.stringify(selectedClnt);
selectedClntID = JSON.parse(x);
}
// headerTemplate: '<div><h2>ID - LastName</h2></div>'
});
然而,很难找到这样的资源指示,当你看到它时,这是很棒的,当涉及到自动完成时,working.This是我的项目的引擎。我是这样做的。
或者,您可以转换为
data =新员工(名字,姓氏,ID);//客户端
function Employee( firstname, lastname, ID ){
this.filterStr = firstname + ""+lastname+" "+ID;
}
将data赋予kendo AutoComplete dataSource,并使用filterStr作为dataTextField。
https://stackoverflow.com/questions/16059276
复制相似问题