So I'm pretty new to using this component, so I'm not very familiar with it yet.
Here's what I'm trying to do:
I have a scheduler that I'm pre-populating with a lot of tasks. I don't want the user to be able to add, delete, or update anything. However, on selecting or clicking (or double clicking, whatever works best) I want to be able to update some other value in the model that was passed into the view.
For example: When user clicks on a task at 12:00 PM I don't want to show any pop ups or anything, but I want to set Model.appontmentTime equal to the tasks start time (i.e. 12:00 PM).
Also, as a side issue, for some reason when I attach a task to an owner as listed in the resources, the task is not showing in the right color. Am I doing something wrong there?
So Far I have:
01.
@(Html.Kendo().Scheduler<
Humana.RetailSales.CGX.Site.TaskViewModel
>()
02.
.Name("timeSlots")
03.
.Views(views => { views.WeekView(); })
04.
.Height(300)
05.
.Date(Model.appointmentCalendarRenderStartDate)
06.
.Height(400)
07.
.AllDaySlot(false)
08.
.MajorTick((int)Model.timeSlotInterval.TotalMinutes)
09.
.MinorTickCount(1)
10.
.Min(Model.appointmentCalendarRenderStartDate)
11.
.Max(Model.appointmentCalendarRenderFinishDate)
12.
.Resources(resource =>
13.
{
14.
resource.Add(m=> m.OwnerID)
15.
.Title("Owner")
16.
.DataTextField("Text")
17.
.DataValueField("Value")
18.
.DataColorField("Color")
19.
.BindTo(new[] {
20.
new { Text = "Many", Value = 1, color = "#003300"},
21.
new { Text = "Few", Value = 2, color = "#CC3300"}
22.
});
23.
})
24.
.DataSource(d => d
25.
.Model(m => {
26.
m.Id(f => f.TaskID);
27.
m.Field(f => f.Title).DefaultValue("No title");
28.
m.Field(f => f.OwnerID).DefaultValue(1);
29.
m.Field(f => f.Title).DefaultValue("No title");
30.
m.RecurrenceId(f => f.RecurrenceID);
31.
})
32.
33.
)
var chart = $("#SalesChart").data("kendoChart");
chart.refresh({
data: { "FromDate": $("#FromDate").data("kendoDatePicker").value(), "ToDate": $("#ToDate").data("kendoDatePicker").value() }
});
@code
Dim
SalesChart
As
Kendo.Mvc.UI.Chart(Of BO.Models.Statistics.SalesTimeSpan) = _
Html.Kendo.Chart(Of BO.Models.Statistics.SalesTimeSpan).
Name(
"SalesChart"
).Title(
"Units sold"
).Series(
Sub
(series)
series.Line(
Function
(model) model.Value, categoryExpression:=
Function
(model) model.Period).
Aggregate(ChartSeriesAggregate.Avg)
End
Sub
).
CategoryAxis(
Function
(axis) axis.
Date
().BaseUnit(ChartAxisBaseUnit.Weeks)).
DataSource(
Function
(ds) ds.Read(
Function
(read) read.Action(
"getsalesbydate"
,
"statistics"
,
New
With
{.area =
String
.Empty})))
SalesChart.Render()
End
Code
01.
var
initialMitarbeiterId =5;
02.
var
filterKategorieArray =
new
Array();
03.
04.
function
SchedulerAdditionalData() {
05.
return
{ mitarbeiterId: initialMitarbeiterId, filterKategorien: filterKategorieArray.toString() };
06.
}
07.
08.
function
SchedulerReadData() {
09.
var
scheduler = $(
"#ErfassungScheduler"
).data(
"kendoScheduler"
);
10.
scheduler.dataSource.read();
11.
}
01.
@(Html.Kendo().Scheduler<
Sachverhalt
>()
02.
.Name("ErfassungScheduler")
03.
.Date(DateTime.Now)
04.
.Views(views =>
05.
{
06.
views.DayView(oDayView => oDayView.DateHeaderTemplate("#=kendo.toString(date, 'ddd dd. MM.')#").Selected(false));
07.
views.WeekView(oWeekView => oWeekView.DateHeaderTemplate("#=kendo.toString(date, 'ddd dd. MM.')#").Selected(false));
08.
views.MonthView(oMonthView => oMonthView.Selected(true));
09.
views.AgendaView(oAgendaView => oAgendaView.Selected(false));
10.
11.
})
12.
.Selectable(true)
13.
.Timezone(timezoneString)
14.
.DataSource(oDs => oDs.Model(m =>
15.
{
16.
m.Id(f => f.Id);
17.
m.Field(f => f.IsAllDay);
18.
m.Field(f => f.Title).DefaultValue("Neuer Termin");
19.
m.Field(f => f.SachverhaltKategorieId);
20.
m.Field(f => f.SachverhaltTypId);
21.
})
22.
.Read( r => r.Action("SchedulerRead", "Erfassung").Data("SchedulerAdditionalData"))
23.
.Destroy("SchedulerDestroy", "Erfassung")
24.
)
25.
.Events(e => e.Edit("scheduler_edit").Add("scheduler_add").Navigate("scheduler_navigate"))
26.
.Resources(resource =>
27.
resource.Add(m => m.SachverhaltKategorieId)
28.
.Title("Kategorie")
29.
.DataTextField("Text")
30.
.DataValueField("Value")
31.
.DataColorField("Color")
32.
.BindTo(colorResourceList)
33.
)
34.
.ShowWorkHours(true)
35.
)
1.
[HttpPost]
2.
public
JsonResult SchedulerRead([DataSourceRequest] DataSourceRequest oRequest,
long
mitarbeiterId,
string
filterKategorien)
3.
{
4.
var selectedMitarbeiterId = mitarbeiterId;
5.
return
Json(
this
.sachverhaltBL.LoadSachverhalte(selectedMitarbeiterId, filterKategorien).ToDataSourceResult(oRequest));
6.
}
Uncaught TypeError: undefined is not a function kendo.all.min.js:9
O kendo.all.min.js:9
D kendo.all.min.js:9
e.extend.kendoFocusable kendo.all.min.js:10
Sizzle.selectors.filter.PSEUDO jquery-1.7.1.js:4605
Sizzle.filter jquery-1.7.1.js:4127
Sizzle jquery-1.7.1.js:3955
Sizzle jquery-1.7.1.js:5083
jQuery.fn.extend.find jquery-1.7.1.js:5339
u.extend.refresh kendo.all.min.js:20
u.extend.init kendo.all.min.js:20
(anonymous function) kendo.all.min.js:10
jQuery.extend.each jquery-1.7.1.js:658
jQuery.fn.jQuery.each jquery-1.7.1.js:271
e.fn.(anonymous function) kendo.all.min.js:10
j.extend.editCell kendo.all.min.js:22
(anonymous function) kendo.all.min.js:22
jQuery.event.dispatch jquery-1.7.1.js:3256
elemData.handle.eventHandle jquery-1.7.1.js:2875
@(Html.Kendo().Grid<
Kendo2.Models.Product
>()
.Name("grid")
.Columns(c =>
{
c.Bound(b => b.Id).Hidden();
c.Bound(b => b.Name);
c.Bound(b => b.Company);
}
)
.Editable(e => e.Mode(GridEditMode.InCell))
.Sortable()
.Pageable(p => p
.Refresh(true)
.PageSizes(new int[] {2, 10})
.ButtonCount(5)
)
.DataSource(dataSource => dataSource
.Ajax()
.Model(model => model.Id(m => m.Id))
.Read(read => read.Action("List", "Home"))
)
)
@(Html.Kendo().Grid<
McGladrey.DOTT.DataAccess.EngagementStatusDataItem
>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(c => c.ClientName).Width("9%").Title("Client Name");
columns.Bound(c => c.ClientNumber).Width("7%");
columns.Bound(c => c.TaxYear).Width("7%");
columns.Bound(c => c.EngType).Width("7%").Title("Eng Type");
columns.Bound(c => c.MasterClient).Width("7%");
columns.Bound(c => c.Assembler).Width("7%");
columns.Bound(c => c.Status).Width("7%");
columns.Bound(c => c.Amended).Width("9%");
columns.Bound(c => c.ReturnTypes).Width("10%");
columns.Bound(c => c.EIMessage).Width(175).Title("Comments");
columns.Bound(c => c.ToDoUsers).Width("9%").Title("To Do");
columns.Bound(c => c.eUpdated).Width("10%").Title("Last Updated").ClientTemplate("#= eUpdated ? kendo.toString(kendo.parseDate(eUpdated), 'MM/dd/yyyy') : '' #");
columns.Bound(c => c.IsInEngagement).Width("10%");
})
.HtmlAttributes(new { style = "height: 380px;" })
.ClientDetailTemplateId("template")
.Scrollable()
.Sortable()
.Pageable(pageable => pageable
.Refresh(true)
.PageSizes(true)
.ButtonCount(5))
.Events(events => events
.DataBound("dataBound")
.DetailExpand("expand"))
)
</
div
>
<
script
id
=
"template"
type
=
"text/x-kendo-template"
>
@(Html.Kendo().Grid<
McGladrey.DOTT.DataModel.WorkSiteDOTT.IManWorkspaceSerializeable
>()
.Name("grid_#=eFolderID#")
.Columns(columns =>
{
columns.Bound(ws => ws.Name).Width(110);
columns.Bound(ws => ws.Owner).Width(110);
columns.Bound(ws => ws.CreationDate).ClientTemplate("\\#= CreationDate ? kendo.toString(kendo.parseDate(CreationDate), 'MM/dd/yyyy') : '' \\#");
columns.Bound(ws => ws.Description).Width(200);
})
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read
.Action("WorksiteRequest", "Admin", new { clientNumber = "#=ClientNumber#", taxYear = "#=TaxYear#", amended = "#=Amended#", engType = "#=EngType#" })
)
)
.Events(events => events.DataBound("dataBinding"))
.HtmlAttributes(new { style = "height: 180px;" })
.ToClientTemplate()
)
</
script
>
<
script
type
=
"text/javascript"
>
function dataBound() {
this.expandRow(this.tbody.find("tr.k-master-row").first());
}
function dataBinding()
{
alert("here");
}
function expand(e) {
alert("in expand");
}
$("#ok").bind("click", function (e) {
var dataSource = new kendo.data.DataSource({
transport: {
read: {
url: "/Admin/EngagmentRequest",
dataType: "json",
data: {
ClientNumber: $('[name=clientNumber]').val(),
ClientName: $('[name=clientName]').val(),
TaxYear: $('[name=taxYear]').val()
}
}
}
});
dataSource.pageSize(5);
var grid = $("#grid").data("kendoGrid");
grid.setDataSource(dataSource);
});
</
script
>
.Editable(e => e.Mode(GridEditMode.PopUp).TemplateName(
"CustomEdit"
).Window(w => w.Title(
"Edit"
).Name(
"customedit"
).Width(1000)))