DayPilot Month supports context menu for time cells. At this moment it's enabled for a single cell.

ASP.NET WebForms

Setup

  1. Create a new DayPilotMenu control.
  2. Assign its ID to DayPilotMonth.ContextMenuSelectionID.
  3. Handle DayPilotMonth.TimeRangeMenuClick event. This event will be triggered by menu item with Action set to CallBack or PostBack.

.aspx

<DayPilot:DayPilotMonth 
  ID="DayPilotMonth1" 
  runat="server" 
  ...
  ClientObjectName="dpm"
  ContextMenuSelectionID="DayPilotMenuSelection"
  OnTimeRangeMenuClick="DayPilotMonth1_TimeRangeMenuClick"
  >
</DayPilot:DayPilotMonth>

<DayPilot:DayPilotMenu ID="DayPilotMenuSelection" runat="server" CssClassPrefix="menu_default">
  <DayPilot:MenuItem Action="JavaScript" JavaScript="dpm.timeRangeSelectedCallBack(e.start, e.end);"
      Text="Create new event (JavaScript)" />
  <DayPilot:MenuItem Action="PostBack" Command="Insert" Text="Create new event (PostBack)" />
  <DayPilot:MenuItem Action="CallBack" Command="Insert" Text="Create new event (CallBack)" />
  <DayPilot:MenuItem Text="-" ></DayPilot:MenuItem>
  <DayPilot:MenuItem Action="JavaScript" JavaScript="alert('Start: ' + e.start.toString() + '\nEnd: ' + e.end.toString())"
      Text="Show selection details" />
</DayPilot:DayPilotMenu>

.aspx.cs

protected void DayPilotMonth1_TimeRangeMenuClick(object sender, TimeRangeMenuClickEventArgs e)
{
  switch (e.Command)
  {
      case "Insert":
          createDbEvent(e.Start, e.End);
          DayPilotMonth1.DataSource = LoadData();
DayPilotMonth1.DataBind(); DayPilotMonth1.Update();
break; } }

ASP.NET MVC

MVC View

@Html.DayPilotMenu("menu", new DayPilotMenuConfig {
  Items = new DayPilot.Web.Mvc.MenuItemCollection
  {
      new DayPilot.Web.Mvc.MenuItem { Text = "Show", Action = MenuItemAction.JavaScript, JavaScript = "alert(e.start + " - " + e.end);"}
  }
})

@Html.DayPilotMonth("dpm_areas", new DayPilotMonthConfig {
  BackendUrl = ResolveUrl("~/Month/Backend"),
  ...
  ContextMenuSelection = "menu"
})