Я использую полный календарь (http://fullcalendar.io) для реализации календаря. У меня есть таблица в моей БД, которая имеет следующие строки - Таблица БД
Этопосмотреть, что у меня есть -
@model IEnumerable<Fit.Models.Events>
@{
ViewBag.Title = "Calendar";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title - Fit</title>
<link href="~/Content/fullcalendar.min.css" rel="stylesheet" />
<link href="~/Content/calendar.css" rel="stylesheet" />
<link href="~/Content/jquery-ui.theme.min.css" rel="stylesheet" />
</head>
<body>
<div id="calendar"></div>
<div style="display: none">
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Title)
</th>
<th>
@Html.DisplayNameFor(model => model.StartTime)
</th>
<th>
@Html.DisplayNameFor(model => model.EndTime)
</th>
<th>
@Html.DisplayNameFor(model => model.User.FirstName)
</th>
<th>
@Html.DisplayNameFor(model => model.IsConfirmed)
</th>
</tr>
@foreach (var item in Model)
{
<tr class="events">
<td class="title">
@Html.DisplayFor(modelItem => item.Title)
</td>
<td class="start">
@Html.DisplayFor(modelItem => item.StartTime)
</td>
<td class="end">
@Html.DisplayFor(modelItem => item.EndTime)
</td>
<td>
@Html.DisplayFor(modelItem => item.User.FirstName)
</td>
<td class="confirmed">
@Html.DisplayFor(modelItem=> item.IsConfirmed)
</td>
</tr>
}
</table>
</div>
</body>
</html>
@section Scripts {
@Scripts.Render("~/bundles/calendar")
}
Это JavaScript -
var events = [];
$(".events").each(function () {
var title = $(".title", this).text().trim();
var start = $(".start", this).text().trim();
var end = $(".end", this).text().trim();
var allDay = "false";
var confirmed = $(".confirmed", this).text().trim();
var colour = "green";
var textColour = "white";
if (confirmed == "False") {
colour = "yellow";
textColour = "red";
}
var event = {
"title": title,
"start": start,
"end": end,
"allDay": allDay,
"color": colour,
"textColor": textColour
};
events.push(event);
});
$("#calendar").fullCalendar({
themeSystem: 'jquery-ui',
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay,listMonth'
},
locale: 'au',
events: events,
selectable: true,
selectOverlap: false,
validRange: function (nowDate) {
return {
start: nowDate.subtract(1,'days')
};
},
handleWindowResize: true,
height: 450,
aspectRatio: 0.5,
displayEventTime: true,
timeFormat: 'H:mm',
select: function (start, end, allDay, jsEvent, view) {
var d = new Date(start);
var d2 = new Date(end);
var m = new moment(d).format("DD-MM-YYYY HH:mm:ss");
var m2 = new moment(d2).format("DD-MM-YYYY HH:mm:ss");
m = encodeURIComponent(m);
m2 = encodeURIComponent(m2);
var uri = "/Events/Create?date=" + m + "&date2=" + m2;
$(location).attr('href', uri);
}
});
Проблема заключается в попытке установить цвет для событий в календаре. Мое намерение состоит в том, чтобы установить зеленыйи белый для событий с IsConfirmed как True, и желтый и красный для событий с IsConfirmed как False. В настоящее время оба события отображаются зеленым и белым, что является неправильным, поскольку одно из событий IsConfirmed имеет значение false.
Что я делаю не так? Если я что-то пропустил, дайте мне знать!