2012-08-22 31 views
9

Tôi đang sử dụng Slickgrids với rất nhiều thành công. Tôi có chỉnh sửa ajax tất cả đang hoạt động - nhưng tôi đang cố gắng thêm một phần chức năng;Thay đổi dữ liệu di động slickgrid sau khi chỉnh sửa

Dưới đây là mã của tôi cho phép tôi cập nhật ô - nó hoạt động như dự định - nhưng tôi muốn có thể thay đổi ô sau khi đã được chỉnh sửa với giá trị trả về từ dữ liệu json. Xem mã của tôi dưới đây - Tôi đã đưa vào thị xã nơi tôi cần một lệnh để cập nhật các tế bào ngồi biên tập với các dữ liệu trả về mới

grid.onCellChange.subscribe(function(e, args) { 
        var dataString = "col="+grid.getColumns()[args.cell].name+"&row="+args.item.new_training_calendar_id+"&value="+data[args.row][grid.getColumns()[args.cell].field]; 

       $.ajax({ 
        type: "POST", 
        url: "mydomain/update_cell", 
        data: dataString, dataType: "json", 
       success: function(a) { 
         if(a.status != "ok") { 
          alert(a.msg); 
          undo(); 
          } else { 
          alert(a.msg); 
          **CHANGE_CELL_HERE TO (a.newdata);** 
          } 
        return false; 
       } }); }); 

Trả lời

14

Nếu bạn đang sử dụng DataView trong mạng lưới của bạn, bạn có thể sử dụng:

grid.invalidateRow(args.row); 
var row = dataView.getItem(args.row); 
row[grid.getColumns()[args.cell].field] = a.msg; 
dataView.updateItem(args.item.id, row); 
grid.render(); 

Nếu bạn đang sử dụng một mạng lưới đồng bằng thay vào đó, bạn có thể sử dụng:

grid.invalidateRow(args.row); 
data[args.row][grid.getColumns()[args.cell].field] = a.msg; 
grid.render(); 

Hy vọng rằng sẽ giúp!

Các vấn đề liên quan