2016-12-13 9 views
0

Я пытаюсь использовать таблицу Kendo Spreadsheet. То, что я пытаюсь выполнить, это ... У меня есть динамические данные. Когда пользователь нажимает кнопку, он отображает данные как диаграмму или таблицу, на основе которой в настоящее время отображается, по умолчанию это диаграмма. Структура данных одинакова, так как значения различны. Я создал функцию, которая строит данные и создает электронную таблицу.Kendo UI динамическая электронная таблица

function bob(data){ 
    var rows = massageData(); 
    $('.' + element).kendoSpreadsheet({ 
     toolbar: false, 
     sheetsbar: false, 
     sheets: [{ 
      name: name.Title, 
      rows: rows 
     }] 
    }); 
} 

Я вызываю функцию bob (произвольное имя) каждую минуту. График, по умолчанию, загружает и загружает электронную таблицу изначально. Я вижу это, нажимая на кнопку, чтобы переключать представление между диаграммой и таблицей. Однако, если диаграмма отображается, когда данные поступают в электронную таблицу, пусто (без значений), когда я делаю таблицу видимой. Я должен ждать обновления, а затем электронная таблица обновляется правильно. Вот кикер, если электронная таблица видна, когда обновление приходит во все, что загружается нормально. Почему таблица не загружается должным образом, если она скрыта? Я использую только CSS, чтобы добавить скрытый класс, который не отображает отображение.

+0

Электронная таблица может не отображаться после заполнения данных. Просто попробуйте: 'var spreadsheet = $ ('.' + Element) .data (" kendoSpreadsheet "); spreadsheet.render(); ' – AaBa

+0

@AaBa Когда я запускаю это, я получаю Uncaught TypeError: spreadsheet.render не является функцией (...) – seroth

+0

Render является одной из функций, упомянутых в API, - не уверен, почему это не работает. Но приятно слышать, метод обновления сделал трюк для вас. – AaBa

ответ

1

Проблема заключалась в том, что отображение вызова CSS: none; удалил его из DOM, и он не обрабатывался должным образом. Когда я сделал

$('.' + element).data("kendoSpreadsheet").refresh(); 

Это сделало трюк.

Смежные вопросы