以下のコードは、FileNo (フィールド) のオートコンプリートに対してのみ機能します。私はこの関数が従業員の他の属性に対しても機能することを望みます。例: FirstName、LastName
dataTextField: "FileNo" <---------------- ここで dataTextField は、sing フィールドを取得します。複数のフィールドの場合はどうすればよいですか?
以下のコードは、FileNo (フィールド) のオートコンプリートに対してのみ機能します。私はこの関数が従業員の他の属性に対しても機能することを望みます。例: FirstName、LastName
dataTextField: "FileNo" <---------------- ここで dataTextField は、sing フィールドを取得します。複数のフィールドの場合はどうすればよいですか?
テンプレートを使用して、オートコンプリートのドロップダウン リストに表示される内容を変更する必要があります。次に、dataTextField は入力要素内でのみ使用されます。
テンプレートの作り方は以上です。
あなたは検索したい列を知っているので、私の推奨事項は次のとおりです。
index.php/hr_management/manage_hr/search_employee/
のいずれかを検索できるように実装します。FileNo
FirstName
LastName
id
提供します。autocomplete
。autocomplete
使用して値を照合し、 でフィルタリングします。grid
Kendo Autocomplete には、項目のフィルタリングに使用するフィールド名 (例: datasource の employeeID、employeeName など) を受け入れる dataTextField があります。
複数のフィールドを使用するには、以下に示すように、スキーマ内のデータソースの解析中に連結フィールドを保持するようにフィールドの 1 つを設定する必要があります。次に、オートコンプリートのフィルターを「含む」に設定します
私は次のようにしました。
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を参照してください。連結された lastname 、 ID 、および 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>'
});
ただし、このように示すリソースを見つけるのは難しいです。それが機能しているのを見ると素晴らしいです。これは、オートコンプリートに関しては私のプロジェクトのエンジンです。私はこのようにしました。
または、に変換することもできます
データ= 新しい従業員 (名、姓、ID); // クライアント側
function Employee( firstname, lastname, ID ){
this.filterStr = firstname + ""+lastname+" "+ID;
}
kendo AutoComplete dataSource にデータを渡し、filterStr をdataTextFieldとして使用します。