2013-10-15 4 views
1

Я использую SpreadJS и мне нужно событие, чтобы срабатывать всякий раз, когда объект (электронные таблицы) изменяется таким образом, что все данные в нем отправляемые на сервер:JQuery события, чтобы получить все данные из объекта

function(){ 
    var spread = $("#ss").wijspread("spread"); 
    var activeSheet = spread.getActiveSheet(); 

    activeSheet.bind($.wijmo.wijspread.Events.EditEnd, function (sender, args) { 
     var dados = JSON.stringify(spread.toJSON()); 
     console.log(dados); 
     $.ajax({ 
      // ... 
     }); 
    }); 
} 

Данные в 'dados' включают все в таблицу, за исключением последней измененной ячейки. Как это исправить?

я попытался включить это внутри обработчика событий, но результат тот же:

var spread = $("#ss").wijspread("spread"); 
+2

может быть, 0 продолжительность SetTimeout? Я не уверен, когда происходит процесс editEnd, но, возможно, это происходит прямо перед сохранением содержимого, подобно тому, как работает событие keydown на входе. –

+1

Я не вижу никакой документации по виджету wijspread в документации wijmo. Редактировать: Там это: http://wijmo.com/docs/spreadjs/API/symbols/$.wijmo.wijspread.Events.html#event:EditEnd это * очень * полезно ... –

+0

Я получил документацию из этого ссылка: http://helpcentral.componentone.com/NetHelp/SpreadHClientUG/webframe.html#Spread~$.wijmo.wijspread.Events~EditEnd_EV.html –

ответ

0

Создание кнопки в верхней части таблицы, а затем ввести все ур данные в электронную таблицу, нажмите на кнопку, то и получить все данные у хотели в jsonformat ...

$("#button1").click(function(){ 
    var dados = JSON.stringify(spread.toJSON()); 
console.log(dados);}); 
+0

На самом деле это не так и ответ на этот вопрос - ОП задавал вопрос о подходе, основанном на событиях. – GHC

0

Вы можете использовать «ValueChange» или другие события и использовать «ARG», чтобы получить изменения.
Например: arg.newValue получит последнее изменение в этой ячейке, arg {row, col} получит изменение местоположения ячейки. Надеюсь, что это поможет вам.
Вот события в SpreadJS:
http://wijmo.com/docs/spreadjs/API/symbols/ $ .wijmo.wijspread.Events.html

activeSheet.bind($.wijmo.wijspread.Events.ValueChanged, function (e, arg) { 
     var r = arg.row; 
     var c = arg.col; 
     var v = arg.newValue; 
     $.ajax({ 
     // ... 
     });         
    }); 
0

Используйте ValueChanged событие

var spread = $("#ss").wijspread("spread"); 
var activeSheet = spread.getActiveSheet(); 

activeSheet.bind($.wijmo.wijspread.Events.ValueChanged, function (sender, args) { 
    console.log(JSON.stringify(spread.toJSON())); 
}); 
Смежные вопросы