2013-03-28 2 views
3

В настоящее время у меня есть двухэтапный процесс для моих карт кендо. Первый процесс позволяет пользователю выбирать наборы данных (серии), которые они хотят на диаграмме. Затем они выбирают шаблон. Шаблон - это настройки графика ex (цветная тема, строка типа диаграммы, бар, ect окружности).kendo chart dynamic series

В настоящее время, если пользователь выбирает наборы данных, которые они хотят, я возвращаю информацию о рядах на график, а затем график заполняется настройками шаблона.

Я также разрешаю пользователю изменять настройки шаблона на лету. Например, гистограмма к линии, области, окружности и т. Д. Они также могут изменить тему. Вопрос становится, когда устанавливается первый груз, информация о серии, что я прохожу является:

{ 
    [name: "string", data: []], 
    [name: "string", data: []] 
} 

, когда я проверить объект серии после изменения на шаблоне я вижу следующие добавлены к объекту:

{ 
    [name: "string", 
    data: [], 
    type: "area", 
    color: "ff6800", 
    ect... 
    ], 
    [name: "string", 
    data: [], 
    type: "area", 
    color: "ff6800", 
    ect... 
    ], 
} 

Проблема заключается в том, что я могу изменить свой тип объекта на правильный выбранный тип. Я даже могу изменить значение цвета на различный цвет для каждой серии. Однако, поскольку я использую темы Kendo, фон диаграммы изменится, но тогда цвета серии не совпадут. Я мог бы придумать функцию, чтобы выбрать цвет фона для диаграммы, а затем выбрать, какие цвета вы хотите для своей серии. Но я предпочел бы использовать методы кэндо, если это возможно.

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

Спасибо заранее!

ответ

4

Я задал этот вопрос на форумах Kendo и получил следующий ответ.

Перед тем, как передать их, вам нужно сохранить глубокую копию параметров диаграммы. Таким образом вы можете воссоздать диаграмму только с вашими исходными параметрами.

var options = { ... }; 

$("#chart").kendoChart(
    // No side effects on options 
    $.extend(true, {}, options) 
); 

Если посмотреть на примере это имеет смысл делать это таким образом, потому что тогда вы можете изменить свой график, когда происходят различные события на странице. Например, когда я хочу изменить тему или тип диаграммы. Я могу просто модифицировать:

options.seriesDefaults = { type = "bar" }; 

Вот ссылка на пример, предоставленной Цветомир: http://jsbin.com/ulohof/1/edit

Вот ссылка на вопрос о кэндо: Форум: http://www.kendoui.com/forums/dataviz/chart/kendo-chart-dynamic-series.aspx