2013-08-19 19 views
7

剣道のグリッドを常に編集モードに設定できるかどうかは誰にも分かりますか?剣道グリッドは常に編集モードにできますか?

ユーザーがセルまたはボタンをクリックして編集モードを有効にすることを希望しません。私たちはウィジェットをいつでも表示して利用できるようにしたいと考えています。

それはまったく可能ですか?

答えて

7

出荷時の状態ではありません。通常はすべてを表示するバッチ編集を有効にできますが、セルをクリックするとエディタに自動的に切り替わります。

Example

それを有効にするには、テーブルのデータソースに{ batch: true }を設定します。さもなければ、あなたはより深いスクリプトに慣れています。チェックして、単にすべての行でeditRowを呼び出してもそれは行いません。デフォルトの動作は、新しい行が編集モードになったときに行の編集を無効にすることです。

したがって、クイックルックはバッチモードと言っています。エディタは常に表示されませんが、すぐに使用できます。

7

バッチ編集モードを使用する以外に、すべての列のテンプレートを設定し、MVVMを使用して入力要素をデータ項目にバインドすることができます。ここで

$("#grid").kendoGrid({ 
    dataSource: { 
    schema: { 
     model: { 
     id: "id", 
     fields: { 
      id: { editable: false } 
     } 
     } 
    } 
    data: [ 
     { id:1, age: 30, name: "John Doe" } 
    ] 
    }, 
    columns: [ 
    { field: "id", width: 50 }, 
    { field: "age", template: "<input data-bind='value: age' data-role='numerictextbox'>" }, 
    { field: "name", template:"<input data-bind='value: name' >" } 
    ], 
    dataBound: function() { 
    var rows = this.tbody.children(); 
    var dataItems = this.dataSource.view(); 
    for (var i = 0; i < dataItems.length; i++) { 
     kendo.bind(rows[i], dataItems[i]); 
    } 
    } 
}); 

はライブデモです:http://jsbin.com/ApoFobA/2/edit

+0

ありがとうございます。それは私が必要とするものに最も近い答えです。 – ThiagoPXP

+0

ありがとうございます。グループ化を有効にし、列で入力フィールドをすべて空白にしてグループ化するまでは、それは素晴らしいものでした。 1つの問題がダウンして、もう1つ.... – wavedrop

1

私は上記の答えは優れていることが判明しました。ただし、グリッドをリフレッシュするとき(並べ替えやフィルタリング、refresh()が呼び出されたときなど)にバインディングをクリーンアップしないで、グリッドのDOM要素を削除するという問題も1つあります。その結果、dataItemsには、増加する数の「変更」イベントがキューに入れられます。これは、少しのメモリリークです。これは、以下のようにdataBindingイベントのバインドを解除することで回避できます。

dataBinding: function() { 
    var rows = this.tbody.children(); 
    for (var i = 0; i < rows.length; i++) { 
    kendo.unbind(rows[i]); 
    } 
} 
関連する問題