private void defineColumns() { DayPilotCalendar1.Columns.Clear(); DateTime first = Week.FirstDayOfWeek(DayPilotCalendar1.StartDate); for (int i = 0; i < 7; i++) { DateTime day = first.AddDays(i); Column c = new Column(day.ToShortDateString(), day.ToString("s")); c.Date = day; DayPilotCalendar1.Columns.Add(c); Column c1 = new Column("A", "A"); c1.Date = day; c.Children.Add(c1); Column c2 = new Column("B", "B"); c2.Date = day; c.Children.Add(c2); if (day.Date == DateTime.Today) { Column c3 = new Column("C", "C"); c3.Date = day; c.Children.Add(c3); } } }
private DateTime GetFirstDayOfWeek(DateTime day) { switch (WeekStarts) { case WeekStarts.Sunday: return(Week.FirstDayOfWeek(day, DayOfWeek.Sunday)); case WeekStarts.Monday: return(Week.FirstDayOfWeek(day, DayOfWeek.Monday)); case WeekStarts.Tuesday: return(Week.FirstDayOfWeek(day, DayOfWeek.Tuesday)); case WeekStarts.Wednesday: return(Week.FirstDayOfWeek(day, DayOfWeek.Wednesday)); case WeekStarts.Thursday: return(Week.FirstDayOfWeek(day, DayOfWeek.Thursday)); case WeekStarts.Friday: return(Week.FirstDayOfWeek(day, DayOfWeek.Friday)); case WeekStarts.Saturday: return(Week.FirstDayOfWeek(day, DayOfWeek.Saturday)); case WeekStarts.Auto: return(Week.FirstDayOfWeek(day)); default: throw new ArgumentOutOfRangeException(); } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DayPilotScheduler1.StartDate = Week.FirstDayOfWeek(DateTime.Today, DayOfWeek.Monday); Label1.Text = String.Format("Week {0} - {1}", Week.WeekNrISO8601(DayPilotScheduler1.StartDate), DayPilotScheduler1.StartDate.ToString("yyyy")); DayPilotScheduler1.DataSource = getData(); DataBind(); } }
private DataTable GetData() { DataTable dt; dt = new DataTable(); dt.Columns.Add("start", typeof(DateTime)); dt.Columns.Add("end", typeof(DateTime)); dt.Columns.Add("name", typeof(string)); dt.Columns.Add("id", typeof(string)); dt.Columns.Add("recurrence", typeof(string)); DataRow dr; DateTime start = Week.FirstDayOfWeek().AddHours(15); // starting on the first day of this week today at 15:00, repeated every week, five times RecurrenceRule rule = RecurrenceRule.FromDateTime("1", start).Weekly().Times(5); dr = dt.NewRow(); dr["id"] = 1; dr["start"] = start; dr["end"] = start.AddHours(1); dr["name"] = "Every week"; dr["recurrence"] = rule.Encode(); dt.Rows.Add(dr); DateTime start2 = Week.FirstDayOfWeek().AddHours(10); // starting on the first day of this week at 10:00, repeated every day for one month //RecurrenceRule rule2 = RecurrenceRule.FromDateTime("2", start2).Daily().Until(start2.AddDays(31)); RecurrenceRule rule2 = RecurrenceRule.FromDateTime("2", start2).Daily(2).Times(2); dr = dt.NewRow(); dr["id"] = 2; dr["start"] = start2; dr["end"] = start2.AddHours(1); dr["name"] = "Every day"; dr["recurrence"] = rule2.Encode(); dt.Rows.Add(dr); DateTime start3 = Week.FirstDayOfWeek().AddDays(1).AddHours(13); dr = dt.NewRow(); dr["id"] = 3; dr["start"] = start3; dr["end"] = start3.AddHours(1); dr["name"] = "By hour (custom)"; dt.Rows.Add(dr); dt.PrimaryKey = new DataColumn[] { dt.Columns["id"] }; return(dt); }
protected void DayPilotScheduler1_BeforeTimeHeaderRender(object sender, DayPilot.Web.Ui.Events.BeforeTimeHeaderRenderEventArgs e) { if (e.Level == 0) { int days = (int)Math.Floor((e.End - e.Start).TotalDays); DateTime outStart = DateTime.MinValue; int outDays; switch (DayPilotScheduler1.CellGroupBy) { case GroupByEnum.Hour: // day, switch to week outStart = Week.FirstDayOfWeek(e.Start, DayOfWeek.Monday); outDays = 7; break; case GroupByEnum.Day: // week, switch to month outStart = new DateTime(e.Start.Year, e.Start.Month, 1); outDays = DateTime.DaysInMonth(e.Start.Year, e.Start.Month); break; case GroupByEnum.Week: // month, switch to year outStart = new DateTime(e.Start.Year, 1, 1); outDays = DateTime.IsLeapYear(e.Start.Year) ? 366 : 365; break; case GroupByEnum.Month: // year, dont switch outDays = 0; break; default: throw new ArgumentOutOfRangeException(); } if (days >= 1) // do not zoom into greater detail than one day { e.InnerHTML = String.Format("<a href='javascript:dps1.commandCallBack(\"goto\", {{ start:\"{0}\", days:{1} }})' style='color:black' title='Zoom in'>{2}</a>", e.Start.ToString("s"), days, e.InnerHTML); } if (outDays > 0) // do not zoom out if we see the whole year { e.InnerHTML += String.Format(" (<a href='javascript:dps1.commandCallBack(\"goto\", {{ start: \"{0}\", days: {1} }})' style='color:black' title='Zoom out'>up</a>)", outStart.ToString("s"), outDays); } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { LoadResources(); LoadSeparators(); DayPilotScheduler1.TimeHeaders.Clear(); DayPilotScheduler1.TimeHeaders.Add(new TimeHeader(GroupByEnum.Day, "dddd, d MMMM yyyy")); DayPilotScheduler1.TimeHeaders.Add(new TimeHeader(GroupByEnum.Hour)); DayPilotScheduler1.TimeHeaders.Add(new TimeHeader(GroupByEnum.Cell)); DayPilotScheduler1.StartDate = Week.FirstDayOfWeek(DateTime.Today); DayPilotScheduler1.Days = 7; DayPilotScheduler1.DataSource = new DataManager().GetAssignments(DayPilotScheduler1); DayPilotScheduler1.DataBind(); DayPilotScheduler1.SetScrollX(DateTime.Today); } }
protected void DayPilotCalendar1_Command(object sender, CommandEventArgs e) { switch (e.Command) { case "previous": DayPilotCalendar1.StartDate = DayPilotCalendar1.StartDate.AddDays(-7); break; case "next": DayPilotCalendar1.StartDate = DayPilotCalendar1.StartDate.AddDays(7); break; case "today": DayPilotCalendar1.StartDate = Week.FirstDayOfWeek(); break; } defineColumns(); // required, the StartDate was changes DayPilotCalendar1.DataBind(); DayPilotCalendar1.Update(CallBackUpdateType.Full); }