1

以下のコードは、FileNo (フィールド) のオートコンプリートに対してのみ機能します。私はこの関数が従業員の他の属性に対しても機能することを望みます。例: FirstName、LastName

dataTextField: "FileNo" <---------------- ここで dataTextField は、sing フィールドを取得します。複数のフィールドの場合はどうすればよいですか?
ここに画像の説明を入力

ここに画像の説明を入力

4

4 に答える 4

2

テンプレートを使用して、オートコンプリートのドロップダウン リストに表示される内容を変更する必要があります。次に、dataTextField は入力要素内でのみ使用されます。

テンプレートの作り方は以上です。

于 2013-04-17T20:44:16.513 に答える
2

あなたは検索したい列を知っているので、私の推奨事項は次のとおりです。

  1. 必要な列 ( 、、...)index.php/hr_management/manage_hr/search_employee/のいずれかを検索できるように実装します。FileNoFirstNameLastName
  2. このサービスは、(少なくとも) 3 つの列を返し、一致する列名と一致する値が見つかった列名をid提供ます。
  3. 一致値は、に値を表示するために使用されますautocomplete
  4. で値を選択したら、列名autocomplete使用して値を照合し、 でフィルタリングします。grid
于 2013-04-18T22:39:31.280 に答える
2

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として使用します。

于 2017-05-31T13:11:49.733 に答える