Javascript 剑道调度程序任务颜色
我想在ViewModel中为特定属性的不同值使用不同的颜色 我的视图模型如下所示:Javascript 剑道调度程序任务颜色,javascript,css,asp.net-mvc,kendo-ui,kendo-scheduler,Javascript,Css,Asp.net Mvc,Kendo Ui,Kendo Scheduler,我想在ViewModel中为特定属性的不同值使用不同的颜色 我的视图模型如下所示: public class SchedulerViewModel : ISchedulerEvent { public string ScheduleID { get; set; } public int? RecurrenceID { get; set; } public string Title { get; set; } public string Description {
public class SchedulerViewModel : ISchedulerEvent
{
public string ScheduleID { get; set; }
public int? RecurrenceID { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public DateTime Start { get; set; }
public DateTime End { get; set; }
public string RecurrenceRule { get; set; }
public string RecurrenceException { get; set; }
public bool IsAllDay { get; set; }
public string StartTimezone { get; set; }
public string EndTimezone { get; set; }
public int IsDismissed { get; set; }
}
在视图中,我使用以下内容:
@(Html.Kendo().Scheduler<Invoice.Models.ViewModels.SchedulerViewModel>()
.Name("scheduler")
.StartTime(DateTime.UtcNow)
.AutoBind(true)
.Date(DateTime.UtcNow)
.Views(views =>
{
views.DayView(dateformat => dateformat.SelectedDateFormat("{0:dd-MMM-yyyy}"));
views.WeekView(weekview => weekview.Selected(true));
views.MonthView();
views.AgendaView();
})
.Resources(resource =>
{
resource.Add(m => m.IsDismissed)
.Title("Is Dismissed")
.DataValueField("Value")
.DataColorField("Color")
.BindTo(new[] {
new { Value = 1, Color = "#f8a398" } , //red
new {Value = 0, Color = "#51a0ed" } //Blue
});
})
.DataSource(d => d
.Batch(false)
.Model(m =>
{
m.Id(f => f.ScheduleID);
m.Field(f => f.Title).DefaultValue("No title");
m.Field(f => f.IsDismissed).DefaultValue(0);
m.Field(f => f.Start).DefaultValue(DateTime.UtcNow);
m.Field(f => f.End).DefaultValue(DateTime.UtcNow);
})
.ServerOperation(true)
.Read("Calendar_ReadSchedule", "Dispatch")
.Create("Calendar_CreateSchedule", "Dispatch")
.Destroy("Calendar_DestroySchedule", "Dispatch")
.Update("Calendar_UpdateSchedule", "Dispatch")
)
)
@(Html.Kendo().Scheduler())
.Name(“调度程序”)
.StartTime(DateTime.UtcNow)
.AutoBind(真)
.Date(DateTime.UtcNow)
.视图(视图=>
{
views.DayView(dateformat=>dateformat.SelectedDateFormat(“{0:dd-MMM-yyyy}”);
views.WeekView(WeekView=>WeekView.Selected(true));
视图。MonthView();
views.AgendaView();
})
.Resources(resource=>
{
resource.Add(m=>m.issed)
.头衔(“被解雇”)
.DataValueField(“值”)
.DataColorField(“颜色”)
.BindTo(新[]{
新的{Value=1,Color=“#f8a398”},//红色
新的{Value=0,Color=“#51a0ed”}//蓝色
});
})
.DataSource(d=>d
.批(假)
.Model(m=>
{
m、 Id(f=>f.ScheduleID);
m、 字段(f=>f.Title).DefaultValue(“无标题”);
m、 字段(f=>f.isdissed).DefaultValue(0);
m、 字段(f=>f.Start).DefaultValue(DateTime.UtcNow);
m、 字段(f=>f.End).DefaultValue(DateTime.UtcNow);
})
.ServerOperation(真)
.Read(“日历和时间表”、“发送”)
.Create(“日历”\u CreateSchedule(“调度”)
.销毁(“日历、销毁时间表”、“发送”)
.更新(“日历更新计划”、“调度”)
)
)
问题是,对于调度程序中的任务,我只得到默认的红色。
但我希望根据属性“IsDissed”中的值使用不同的颜色
怎么可能呢?试试这样的方法:
$(function() {
scheduler_update();
});
function scheduler_update()
{
var calendarResources = [ { "text": "Calendar ONE", "value": "mycalendar1", "color": "#9fc6e7" },{ "text": "Calendar TWO", "value": "mycalendar2", "color": "#7bd148" }];
var calendarFilters = {logic: "or", filters: [ { "field": "value", "operator": "eq", "value": "mycalendar1" },{ "field": "value", "operator": "eq", "value": "mycalendar2" }]};
schedulerTasks = [{"Id": "task1","Title": "Task 1","Description": null,"CalendarId": "mycalendar1","StartDate": "2014-03-19 08:00","EndDate": "2014-03-19 09:00","IsAllDay": false},
{"Id": "task2","Title": "Task 2","Description": null,"CalendarId": "mycalendar2","StartDate": "2014-03-19 10:00","EndDate": "2014-03-19 11:00","IsAllDay": false}];
var schedulerControl = $("#scheduler").data("kendoScheduler");
schedulerControl.resources[0].dataSource.data(calendarResources);
schedulerControl.resources[0].dataSource.filter(calendarFilters);
schedulerDataSource.read();
schedulerControl.view(schedulerControl.view().name);
}
可能您正在进行的数据绑定不是korrekt,因此所有事件都会获得defaultvalue 将事件添加到计划程序: ... .Events(Events=>Events .DataBound(“调度器_数据绑定”)) ... 和javascript中的函数: 函数调度程序_数据绑定(e){ 调度程序.u data.forEach(函数(名称){console.log(“id”+name.id+“uid”+name.uid)}) } ... 就你而言 调度器._data.forEach(函数(名称){console.log(“isDis”+name.isdissed)
要调试事件,这可以帮助您检测错误。您可以使用EventTemplate属性为事件的背景着色
@(Html.Kendo().Scheduler<Invoice.Models.ViewModels.SchedulerViewModel>()
.Name("scheduler")
.StartTime(DateTime.UtcNow)
.AutoBind(true)
.EventTemplate( "<div style= 'background-color:( #= IsDismissed # );'>" +
"<h3>#= title #</h3>" +
"</div>")
@(Html.Kendo().Scheduler())
.Name(“调度程序”)
.StartTime(DateTime.UtcNow)
.AutoBind(真)
.EventTemplate(“”)+
“#=标题#”+
"")