2012-12-23 10 views
5

グリッドツールバーの[保存]ボタンを使用せずに、入力を押したりセルから移動したり(ぼかし)したときにグリッドを変更しようとしました。剣道UIグリッドをセルに保存するぼんぼう

正しく動作させるには問題がありますが、PHP/SQLは正常に動作しているため、グリッドに問題があると確信しています。

は、ここに私のコードです:私は多くのものと異なるイベントを試してみました

$("#grid").kendoGrid({ 
dataSource: { 
    transport: { 
     read: WEBROOT+"admin/fetch-toppers", 
     update: { 
      url: WEBROOT+"admin/update-topper", 
      type: "POST" 
     } 
    }, 
    error: function(e) 
    { 
     alert(e.responseText); 
    }, 
    schema: { 
     data: "data", 
     model: { 
      id: 'id', 
      fields: { 
       "id": {nullable: true}, 
       "Date": {editable: false}, 
       "name": {editable: false}, 
       "price": {editable: true} 
      } 
     } 
    } 
}, 
columns: [{field: "Date", width: 105}, {field: "name", title: "Topper"}, {field: "price", title: "Price", width: 125}], 
height: 550, 
filterable: true, 
sortable: true, 
pageable: true, 
editable: true, 
navigatable: true, 
edit: function() 
{ 
    //this.saveChanges() 
} 
}); 

が、それは効果がありません。

ぼかしでセルの値を保存するにはどうすればよいですか?

答えて

7

追加:

change: function (e) { 
         if (e.action == "itemchange") { 
          this.sync(); 
         } 
        }, 

それは次のようになります。

dataSource: { 
transport: { 
    read: WEBROOT+"admin/fetch-toppers", 
    update: { 
     url: WEBROOT+"admin/update-topper", 
     type: "POST" 
    } 
}, 
error: function(e) 
{ 
    alert(e.responseText); 
}, 
change: function (e) { 
         if (e.action == "itemchange") { 
          this.sync(); 
         } 
}, 
schema: { 
    data: "data", 
    model: { 
     id: 'id', 
     fields: { 
      "id": {nullable: true}, 
      "Date": {editable: false}, 
      "name": {editable: false}, 
      "price": {editable: true} 
     } 
    } 
} 

}、

+0

ありがとう!!!!! – imperium2335

+0

優秀!ありがとうございました!これを見なければならない剣道フォーラムには多くのスレッドがあります! – zerodahero

1

あなたは、データソースのsync方法を実行するためのデータソースのchangeイベントをしようとして使用することができます。あなたのデータソースで

$("#grid").kendoGrid({ 
dataSource: { 
    transport: { 
     read: WEBROOT+"admin/fetch-toppers", 
     update: { 
      url: WEBROOT+"admin/update-topper", 
      type: "POST" 
     } 
    }, 
    change:function(){this.sync()}, 
    error: function(e) 
    { 
     alert(e.responseText); 
    }, 
    schema: { 
     data: "data", 
     model: { 
      id: 'id', 
      fields: { 
       "id": {nullable: true}, 
       "Date": {editable: false}, 
       "name": {editable: false}, 
       "price": {editable: true} 
      } 
     } 
    } 
}, 
columns: [{field: "Date", width: 105}, {field: "name", title: "Topper"}, {field: "price", title: "Price", width: 125}], 
height: 550, 
filterable: true, 
sortable: true, 
pageable: true, 
editable: true, 
navigatable: true, 
edit: function() 
{ 
    //this.saveChanges() 
} 
}); 
+0

私は自分が持っているもののコンテキストをどのように入れますか? – imperium2335

+0

明確にしてください。 –

+0

あなたの提案を実装するためにコードを変更するにはどうすればよいですか?私はすべてを試しましたが、まだ動作しませんが、変更を保存するボタンで正常に動作しますが、それは私が望むものではありません。 – imperium2335

0

を次のようにあなたはまた、右のグリッドから自分のデータソースの同期を呼び出すことができます(postのTelerikに従ってsetTimeoutを使用してください)...

save: function() { 
    setTimeout(function() { 
      yourDatasource.sync(); 
    } 
} 
関連する問題