예제 #1
0
    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);
            }
        }
    }
예제 #2
0
        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();
            }
        }
예제 #3
0
 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();
     }
 }
예제 #4
0
    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);
    }
예제 #5
0
    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);
        }
    }
예제 #7
0
    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);
    }