Всем хорошего дня!
В C# собираются данные и формируется массив:
Gantt gantt = new Gantt();
List<Source> source = new List<Source>();
foreach (DataRow row in dtPoints.Rows)
{
List<Values> values = new List<Values>();
var dtb = Convert.ToDateTime(row["PDateBegin"]).AddHours(-3).Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds.ToString();
var dte = Convert.ToDateTime(row["PDateEnd"]).AddHours(-3).Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds.ToString();
values.Add(new Values() { from = string.Format("/Date({0})/", dtb), to = string.Format("/Date({0})/", dte), customClass = row["PColor"].ToString(), desc = row["ToolTip"].ToString(), label = row["PName"].ToString() });
source.Add(new Source() { values = values, name = row["PName"].ToString(), desc = row["TName"].ToString() });
}
string[] ArrPeriod = new string[4] { "hours", "days", "weeks", "months" };
gantt.scale = ArrPeriod[Period];
gantt.minScale = "hours";
gantt.source = source;
gantt.scrollToToday = true;
gantt.itemsPerPage = 20;
gantt.maxScale = "months";
gantt.navigate = "scroll";
gantt.waitText = "Обновляем информацию...";
gantt.months = new List<string>() { "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь" };
gantt.dow = new List<string>() { "Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб" };
gantt.onItemClick = new JRaw("function(data) {alert('Item clicked - show some details');}");
gridPlans.JSProperties["cpDiagrams"] = JsonConvert.SerializeObject(gantt);
В предпоследней строке появляется JRaw, чтобы вставить скрипт как скрипт, а не как строку.
Но тут возникает проблема в парсинге:
$("#gantt").gantt(JSON.parse(gridPlans.cpDiagrams));
где gridPlans.cpDiagrams это динамически обновляемое значение при использовании фильтров на странице.
Как правильно при использовании JRAW? Или может есть другие форматы передачи функции в массив json?