Здравствуйте.
Делаю веб приложение календарь событий на С# MVC Есть календарь (таблица), при нажатии на ячейку(день) должна формироваться новая таблица html (расписание на день) где есть 2 столбца.
В первом указано время(часы от 0 до 24) во втором столбце собственно название самого события.
События не могут пересекаться. В представление формирующее эту таблицу прилетает уже сортированный по времени, список из всех событий в этот день (List). Я сделал таблицу с выводом всех событий , но задача такая чтобы события не повторялись в таблице, сейчас они повторяются.
В идеале должно выглядеть так:
А выглядит так
т.е события в ячейках повторяются.
Прошу помощи , или хотя бы наводку, как такое можно реализовать.
Никак не могу понять как сделать чтобы ячейки объединялись, учитывая что количество событий всегда разное.
Исходный код:
<table border="1" class="schedule-table">
@{
int mem_id = 0;
for (int i = 0; i < 24; i++)
{
<tr>
<td class="time">@i :00</td>
<td>
@for (int j = 0; j < Model.eventList.Count; j++)
{
DateTime data = Model.curentDate;
DateTime start = new DateTime(data.Year, data.Month, data.Day, i, 0, 0);
DateTime end = new DateTime(data.Year, data.Month, data.Day, i, 0, 0).AddHours(1);
if (!(Model.eventList.ElementAt(j).StartTime >= end || Model.eventList.ElementAt(j).EndTime < start))
{
if (mem_id == Model.eventList.ElementAt(j).id) // если id совпадает , то не печатаем крестик
{
@String.Format("{0}:{1}-{2}",
Model.eventList.ElementAt(j).DescriptionEvent, Model.eventList.ElementAt(j).StartTime.ToShortTimeString(), Model.eventList.ElementAt(j).EndTime.ToShortTimeString());
}
else // если id не совпадает то печатаем крестик и запоминаем новый id
{
@String.Format("{0}:{1}-{2}",
Model.eventList.ElementAt(j).DescriptionEvent, Model.eventList.ElementAt(j).StartTime.ToShortTimeString(), Model.eventList.ElementAt(j).EndTime.ToShortTimeString());
<img class="delete-icon" src="~/Content/img/Delete-icon.png" onclick="RemoveEvent(@Model.eventList.ElementAt(j).id, '@Model.eventList.ElementAt(j).StartTime')">
mem_id = (Model.eventList.ElementAt(j).id);
}
}
}
</td>
</tr>
}
}
</table>