I have seen the demo where you are using SignalR and entity framework to bind to a Kendo scheduler. I have tried using this but have all sorts of problems.
- I am using a Edit Template with Kendo drop downs (the data for the drop downs are in Resources section but don't bind - I raised this as a separate question.
- I have a number of extra fields in my model. When I click to edit only the standard fields Title, Start End are bound all others have no data
Is there a way to use Linq rather than EF as I'm more familiar with this?
This is my schedular initialisation code...
////initialise scheduler
$("#scheduler").kendoScheduler({
date: Date.now(),
timezone: "Europe/London",
workDayStart: new Date("2013/1/1 08:00 AM"),
workDayEnd: new Date("2013/1/1 8:00 PM"),
dateHeaderTemplate: kendo.template("<
strong
>#=kendo.toString(date, 'ddd dd/M')#</
strong
>"),
selectable: true,
messages: {
ariaSlotLabel: "Selected from {0:g} to {0:g}",
showWorkDay: "Show core work hours"
},
editable: {
window: {
title: "Work Request",
width: "720px"
},
template: $("#customEditorTemplate").html()
},
height: 400,
views: [
{ type: "day", editable: { destroy: false } },
{ type: "week", editable: { destroy: false }, eventHeight: 40 },
{ type: "timeline", editable: { destroy: false }, eventHeight: 40 },
{ type: "timelineWeek", selected: true, majorTick: 1440, minorTickCount: 1, editable: { destroy: false }, eventHeight: 40 },
{ type: "agenda" },
{ type: "month", editable: { destroy: false }, eventHeight: 40 }
],
timezone: "Etc/UTC",
dataSource: {
type: "signalr",
push: function (e) {
var notification = $("#notification").data("kendoNotification");
notification.success(e.type);
},
transport: {
signalr: {
hub: sHub,
promise: sHubStart,
server: {
read: "read",
create: "create",
update: "update",
destroy: "destroy"
},
client: {
read: "read",
create: "create",
update: "update",
destroy: "destroy"
}
}
},
schema: {
model: {
id: "wRequestID",
fields: {
wRequestId: {
editable: false,
from: "WRequestID",
type: "number",
defaultValue: 0
},
start: {
from: "Start",
type: "date",
culture: "en-GB"
},
end: {
from: "End",
type: "date",
culture: "en-GB" },
diary: {
from: "Diary",
type: "object",
defaultValue: "UIS"
},
team: {
from: "Team",
type: "object"
},
title: {
from: "Title",
type: "string",
validation: { required: true }
},
workManager: {
from: "WorkManager",
type: "object"
},
assignee: {
from: "Assignee",
type: "object"
},
changeRef: {
from: "ChangeRef",
type: "string",
validation: { required: true }
},
activity: {
from: "Activity",
type: "string",
validation: { required: true }
},
impactedServers: {
from: "ImpactedServers",
type: "string",
validation: { required: true }
},
impactedServices: {
from: "ImpactedServices",
type: "string",
validation: { required: true }
},
isBAU: {
from: "IsBAU",
type: "boolean",
defaultValue: false
},
projectRef: {
from: "ProjectRef",
type: "string",
validation: { required: true }
},
notes: {
from: "Notes",
type: "string"
},
isOOH: {
from: "IsOOH",
type: "boolean",
defaultValue: false
},
isAllDay: {
from: "IsAllDay",
type: "boolean",
defaultValue: false
},
recurrenceRule: {
from: "RecurrenceRule",
type: "string"
},
recurrenceId: {
from: "RecurrenceID",
type: "number"
},
recurrenceException: {
from: "RecurrenceException",
type: "string"
},
startTimezone: {
from: "StartTimezone",
type: "string"
},
endTimezone: {
from: "EndTimezone",
type: "string"
}
}
},
},
},
resources: [
{
field: "team",
dataSource: [
{ text: "Team 1", value: "Team 1", color: "#f8a398" },
{ text: "Team 2", value: "Team 2", color: "#51a0ed" },
{ text: "Team 3", value: "Team 3", color: "#56ca85" }
],
title: "Team"
},
{
field: "workManager",
dataSource: [
{ text: "Manager 1", value: "12345", color: "#f8a398" },
{ text: "Manager 2", value: "23456", color: "#51a0ed" },
{ text: "Manager 3", value: "34567", color: "#56ca85" }
],
title: "Work Manager",
},
{
field: "assignee",
dataSource: [
{ text: "Alex", value: "12345", color: "#f8a398" },
{ text: "Bob", value: "23456", color: "#51a0ed" },
{ text: "Charlie", value: "34567", color: "#56ca85" }
],
title: "Assigned To"
}
],
edit: function(e) {
var container = e.container;
/* ACTION: ADD custom button */
var newButton = $('<
a
class
=
"k-button"
href
=
"#"
>New button</
a
>');
//wire its click event
newButton.click(function(e) { alert("Clicked"); });
//add the button to the container
var buttonsContainer = container.find(".k-edit-buttons");
buttonsContainer.append(newButton);
}
});