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

Надеюсь, что это то, что вы ищете, и дайте мне знать, если вам нужна дополнительная помощь.

Другие вопросы по тегам