Dhtmlx Scheduler загружает данные базы данных в y_unit
Я работаю над приложением ASP.Net MVC (C# Razor Engine), где мне нужно планировать рабочие задачи в течение определенного дня.
Я решил использовать Dhtmlx Scheduler (к сожалению, бесплатную версию на стороне клиента) и мне нужна помощь в загрузке пользовательских данных для y_unit.
var sections = [
{ key: 1, label: "James Smith" },
{ key: 2, label: "John Williams" },
{ key: 3, label: "David Miller" },
{ key: 4, label: "Linda Brown" }
];
scheduler.createTimelineView({
name: "timeline",
x_unit: "minute",
x_step: 30,
x_start: 16,
x_date: "%H:%i",
x_size: 24,
x_length: 48,
y_unit: sections, // Need to change this
event_dy: 'full',
y_property: "section_id",
render: "bar"
Это то, что у меня есть в настоящее время, вместо "разделов", которые я хочу поместить туда свою информацию (идентификатор и имя работника) из базы данных, которую я связал в своем контроллере.
Как бы я это сделал? Заранее всем спасибо за помощь!
Изменить: мой.NET разъем для планировщика
public override IdhtmlxConnector CreateConnector(HttpContext context)
{
var connector = new dhtmlxSchedulerConnector(
"Events",
"EventID",
dhtmlxDatabaseAdapterType.SqlServer2005,
ConfigurationManager.ConnectionStrings["ServiceOptimization"].ConnectionString,
"FromDate",
"ToDate",
"Subject as text, Details as details, Tags"
);
var optionsConnector = new dhtmlxOptionsConnector(
"W6ENGINEERS",
"ID",
connector.Request.Adapter,
"Name"
);
// get an error here, no such method for connector.
connector.AddOptionsConnector("type", optionsConnector);
return connector;
}
Я не уверен, что нахожусь на правильном пути, но я хочу получить имя и идентификатор инженера. Отсюда я считаю, что я должен использовать serverList, чтобы установить соединение.
но сейчас я получаю ошибку с.AddOptionsConnector. Также, как бы я добавить OptionsConnector в serverList?
В php они используют: $scheduler->set_options("section", $list); что будет эквивалентно в C#?
2 ответа
Я понял это в конце концов!
Я создал список из моего контроллера и отправил его в Javascript через JSON.
контроллер:
var engList = new List<object>();
foreach (var engineer in viewModel.engineers)
{
engList.Add(new { key = engineer.ID, label = engineer.Name });
}
ViewBag.engineers = engList;
Скрипт Шойдлера:
var engineers = @Html.Raw(Json.Encode(ViewBag.engineers))
[...]
y_unit: engineers,
Спасибо Skapie19 за помощь!
Пожалуйста, посмотрите эту часть документации для объяснения по добавлению пользовательских значений оси Y из базы данных:
http://docs.dhtmlx.com/scheduler/timeline_view.html
Надеюсь, что это то, что вы ищете, и дайте мне знать, если вам нужна дополнительная помощь.