Что касается виджета Kendo Scheduler, я использую MVC Razor Helper, но мне нужно, чтобы пользователь мог определять свои собственные «ресурсы» в метаданных, а затем иметь рендеринг планировщика на основе этой конфигурации.Планировщик Kendo: динамическое определение ресурсов во время выполнения
Все примеры, которые я видел, требуют от разработчика, чтобы знать ресурсы должны быть связаны во время разработки (например, RoomID, OwnerId, Attendeed), используя следующий стиль добавления ресурсов ....
.Resources(resource =>
{
resource.Add(m => m.RoomID)
.Title("Room")
.DataTextField("Text")
.DataValueField("Value")
.DataColorField("Color")
.BindTo(new[] {
new { Text = "Meeting Room 101", Value = 1, Color = "#6eb3fa" },
new { Text = "Meeting Room 201", Value = 2, Color = "#f58a8a" }
});
resource.Add(m => m.Attendees)
.Title("Attendees")
.Multiple(true)
.DataTextField("Text")
.DataValueField("Value")
.DataColorField("Color")
.BindTo(new[] {
new { Text = "Alex", Value = 1, Color = "#f8a398" } ,
new { Text = "Bob", Value = 2, Color = "#51a0ed" } ,
new { Text = "Charlie", Value = 3, Color = "#56ca85" }
});
})
Однако, во время разработки, я не знаю, какие ресурсы (например, RoomID, Участники). Я буду знать только, что как только приложение запускается и запрашивает метаданные/базу данных. то есть я хочу, чтобы иметь возможность построить ресурсы, предпочтительно делает вызов Ajax, или, возможно, пробегаем по коллекции, хранящейся в переменной ViewBag .. Что-то вроде следующего:
.Resources(resource =>
{
foreach(ResourceType resourceType in ViewBag.ResourceTypes)
{
resource.Add(resourceType.Name)
.Title(resourceType.Name)
.DataTextField("Text")
.DataValueField("Value")
.DataColorField("Color")
.BindTo(new[] {
new { Text = "some text", Value = 1, Color = "#6eb3fa" },
new { Text = "some other text", Value = 2, Color = "#f58a8a" }
});
}
})
Позвольте мне знать, если это имеет смысл или, если мне нужно предоставить больше информации ...
Благодаря
Jon