DayPilot Knowledge Base

AJAX Calendar/Scheduling Controls
DayPilot Pro (AJAX Calendar Control)
» DayPilot AJAX Calendar
DayPilot Pro (AJAX Monthly Calendar Control)
» DayPilot AJAX Monthly Calendar
DayPilot Pro (AJAX Scheduler Control)
» DayPilot AJAX Scheduler
DayPilot » Knowledge Base » How to use DayPilot Scheduler with LINQ to SQL

How to use DayPilot Scheduler with LINQ to SQL

Last revision: Mar 17, 2010

This is a quick example of using LINQ to SQL with DayPilot Scheduler.

1. Prerequisites

2. Create a new DBML file

Create a new DBML file called DataClasses.dbml in the App_Code folder using "Add New Item..." context menu action.

linq-new-dbml.png

3. Create the entity classes

Drag the tables from the Server Explorer to the DataClasses.dbml window.

linq-dbml-drag.png

You can adjust the properties of the entities using the Properties editor. The code will be generated automatically (DataClasses.designer.cs).

linq-dbml-entities.png

4. The LINQ Code

What follows is a simple code that loads the resources (resource table) and events (event table) to the Scheduler control. The Dps control is added dynamically using a PlaceHolder but it could be added directly to the aspx as well.

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>DayPilot and LINQ</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:PlaceHolder ID="Placeholder" runat="server"></asp:PlaceHolder>
    </div>
    </form>
</body>
</html>

Default.aspx.cs

using System;
using System.Linq;
using DayPilot.Web.Ui;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var start = new DateTime(2010, 1, 1);
        var end = new DateTime(2011, 1, 1);

        var db = new DataClassesDataContext();
        var events = from ev in db.Events where !(ev.eventend <= start || ev.eventstart >= end) select ev;
        var resources = from res in db.Resources orderby res.name select res;

        var dps = new DayPilotScheduler();
        foreach(var r in resources)
        {
            dps.Resources.Add(r.name, r.id.ToString());
        }

        dps.DataSource = events;
        dps.DataStartField = "eventstart";
        dps.DataEndField = "eventend";
        dps.DataValueField = "id";
        dps.DataTextField = "text";
        dps.DataResourceField = "resource_id";
        dps.DataBind();

        Placeholder.Controls.Add(dps);
    }
}

Related

How to show a modal dialog in ASP.NET MVC 3 Razor
How to show an event calendar in ASP.NET MVC 3 Razor
How to implement Copy & Paste in the Calendar
How to save the exported PNG image to a file (without a web page)