下面的代碼僅適用於FileNo(字段)自動完成。我希望這個功能也適用於員工的其他屬性。即名字,姓氏kendoAutoComplete for multiple dataTextField
dataTextField:「FileNo」< ----------------這裏dataTextField獲取唱歌字段。怎麼會有多個領域?
下面的代碼僅適用於FileNo(字段)自動完成。我希望這個功能也適用於員工的其他屬性。即名字,姓氏kendoAutoComplete for multiple dataTextField
dataTextField:「FileNo」< ----------------這裏dataTextField獲取唱歌字段。怎麼會有多個領域?
既然你是哪一列要搜索一個知道的人,我的建議是:
index.php/hr_management/manage_hr/search_employee/
(FileNo
,FirstName
,LastName
...)。id
,列名在其上找到匹配和匹配值。autocomplete
中的值。上autocomplete
grid
濾波。您應該使用模板改變什麼顯示在自動完成的下拉列表。然後dataTextField將只在輸入元素中使用。
Here是如何去創建模板。
Kendo Autocomplete具有dataTextField,它接受用於過濾項目的字段名稱(例如,employeeID,employeeName等數據源)。
要使用多個字段,你必須在分析數據源的在模式下面給出的設置中的一個字段持有級聯字段。 然後設置你的過濾自動完成對「包含」
我做了如下。
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上面它的重建,以保持級聯姓,名和姓字符串。
下一步是使用解析的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是我的項目的引擎,當涉及到自動完成。我這樣做了。
或者,也可以轉換爲
數據 =新員工(名字,姓氏,ID); //在客戶端
function Employee(firstname, lastname, ID){
this.filterStr = firstname + ""+lastname+" "+ID;
}
給數據到劍道自動完成數據源並使用filterStr作爲dataTextField。
謝謝,我試過了。它也很好,但是當我輸入FileNo時它會返回表格中的模板或其他細節。我想要的是用例如FirstName搜索相同的記錄。 –
該模板僅用於設計dropdownlist的項目。問題在於如何通過組合字段獲取項目,而不是將其限制爲設置爲dataTextField的單個字段。看到我上面的答案。 – Yergalem