Я использую виджет электронных таблиц kendo-ui для загрузки данных, доступных только для чтения, на лету. Поскольку, насколько мне известно, нет способа импортировать литерал CSV, я конвертирую свои данные CSV в соответствующий формат, используя библиотеку jquery -csv вместе с функцией $ .map.
Это то, что я делаю:
var rows = $.csv.toArrays(viewModel.Csv);
$("#spreadsheet-preview").data("kendoSpreadsheet").activeSheet().rows = $.map(rows, function(row) {
return {
"cells": $.map(row, function(cell) {
return {
"background": "#ffffff",
"color": "#343a40",
"enable": false,
"value": cell
}
})
};
});
$("#spreadsheet-preview").data("kendoSpreadsheet").refresh();
Всякий раз, когда я проверяю результат $("#spreadsheet-preview").data("kendoSpreadsheet").activeSheet().rows
в консоли моего браузера, возвращаемое значение:
[
{
"cells": [
{
"background": "#ffffff",
"color": "#343a40",
"enable": false,
"value": "John"
},
{
"background": "#ffffff",
"color": "#343a40",
"enable": false,
"value": "Smith"
},
{
"background": "#ffffff",
"color": "#343a40",
"enable": false,
"value": "5555551234"
},
{
"background": "#ffffff",
"color": "#343a40",
"enable": false,
"value": "user@email.com"
},
{
"background": "#ffffff",
"color": "#343a40",
"enable": false,
"value": "123 Main St"
},
{
"background": "#ffffff",
"color": "#343a40",
"enable": false,
"value": "Anytown"
},
{
"background": "#ffffff",
"color": "#343a40",
"enable": false,
"value": "LA"
},
{
"background": "#ffffff",
"color": "#343a40",
"enable": false,
"value": "12345"
},
{
"background": "#ffffff",
"color": "#343a40",
"enable": false,
"value": "4/19/2020"
}
]
}
]
Что это такое? Я ожидаю, что это произойдет, однако виджет никогда не обновляется, чтобы отражать новые данные, независимо от refresh()
, вызываемого после того, как я установил свойство rows.
Это ошибка или я просто что-то упустил?