Hi there,
I want to add a ajax backed ComboBox item into the form template for selecting a company.
(I do not want to use the ressources functionality for that)
The form is working correctly, but the CompanyId ist not transferred in the server request for saving the event.
Am I blind? What am I missing here?
My Scheduler:
My template:
many thanks,
Chris
I want to add a ajax backed ComboBox item into the form template for selecting a company.
(I do not want to use the ressources functionality for that)
The form is working correctly, but the CompanyId ist not transferred in the server request for saving the event.
Am I blind? What am I missing here?
My Scheduler:
@(Html.Kendo().Scheduler<
ScheduleViewModel
>()
.Name("Schedules")
.AutoBind(false)
.DateHeaderTemplate("<
strong
>#=kendo.toString(date, 'ddd., d. MMM.')#</
strong
>")
.AllDayEventTemplateId("event-template")
.EventTemplateId("event-template")
.Mobile(MobileMode.Auto)
.Date(DateTime.Today)
.Editable(e => e.TemplateId("editor-template"))
.Views(views => {
views.DayView(i => i.ShowWorkHours(true));
views.WorkWeekView(i => i.Selected(true).ShowWorkHours(true));
views.WeekView(i => i.ShowWorkHours(true));
views.MonthView();
views.AgendaView();
})
.Events(events => events.DataBound("onDataBound"))
.Timezone("Europe/Vienna")
.ShowWorkHours(true)
.Resources(res => {
res.Add(i => i.ScheduleType)
.Name("ScheduleType")
.Title("Termintyp")
.BindTo(new[] {
new {Name = "Intern", Id = 1, Color = "#43ac6a"},
new {Name = "Extern", Id = 2, Color = "#5bc0de"},
new {Name = "Abwesend", Id = 3, Color = "#ccc"}
})
.DataValueField("Id")
.DataTextField("Name")
.DataColorField("Color");
res.Add(i => i.UserIDs)
.Name("Users")
.Title("Teilnehmer")
.DataSource(dataSource => dataSource
.Read(read => read.Action("_Schedule", "Account")))
.DataValueField("Id")
.DataTextField("Name")
.DataColorField("Color")
.Multiple(true);
}
)
.DataSource(dataSource => dataSource
.Model(model => {
model.Id(i => i.Id);
model.Field(i => i.ScheduleType).DefaultValue(0);
model.Field(i => i.CompanyId).Editable(true);
})
.Read(read => read.Action("_Index", "Schedule").Data("updateGrid"))
.Create(create => create.Action("_Create", "Schedule"))
.Update(update => update.Action("_Edit", "Schedule"))
.Destroy(destroy => destroy.Action("_Delete", "Schedule"))
))
My template:
<
script
id
=
"editor-template"
type
=
"text/x-kendo-template"
>
<
div
class
=
"k-edit-label"
>
<
label
for
=
"title"
>Titel</
label
>
</
div
>
<
div
class
=
"k-edit-field"
data-container-for
=
"title"
>
<
input
name
=
"title"
class
=
"k-input k-textbox"
type
=
"text"
data-bind
=
"value:title"
>
</
div
>
<
div
class
=
"k-edit-label"
>
<
label
for
=
"companyid"
>Firma</
label
>
</
div
>
<
div
class
=
"k-edit-field"
data-container-for
=
"companyid"
>
@(Html.Kendo().ComboBox()
.Name("CompanyId")
.HtmlAttributes(new { data_bind = "value:CompanyId"})
.DataSource(source => source.Read("Autocomplete", "Company").ServerFiltering(true))
.DataTextField("name")
.DataValueField("id")
.Filter(FilterType.StartsWith)
.Placeholder("Firma wählen...")
.ToClientTemplate()
)
</
div
>
<
div
class
=
"k-edit-label"
>
<
label
for
=
"start"
>Beginn</
label
>
</
div
>
<
div
class
=
"k-edit-field"
data-container-for
=
"start"
>
<
input
name
=
"start"
type
=
"text"
required
data-type
=
"date"
data-role
=
"datetimepicker"
data-bind
=
"value: start,invisible: isAllDay"
/>
<
input
name
=
"start"
type
=
"text"
required
data-type
=
"date"
data-role
=
"datepicker"
data-bind
=
"value: start,visible: isAllDay"
/>
</
div
>
<
div
class
=
"k-edit-label"
>
<
label
for
=
"end"
>Ende</
label
>
</
div
>
<
div
class
=
"k-edit-field"
data-container-for
=
"end"
>
<
input
name
=
"end"
type
=
"text"
required
data-type
=
"date"
data-role
=
"datetimepicker"
data-bind
=
"value: end ,invisible:isAllDay"
/>
<
input
name
=
"end"
type
=
"text"
required
data-type
=
"date"
data-role
=
"datepicker"
data-bind
=
"value: end ,visible:isAllDay"
/>
</
div
>
<
div
class
=
"k-edit-label"
>
<
label
for
=
"isAllDay"
>Ganztägig</
label
>
</
div
>
<
div
class
=
"k-edit-field"
data-container-for
=
"isAllDay"
>
<
input
type
=
"checkbox"
name
=
"isAllDay"
data-type
=
"boolean"
data-bind
=
"checked:isAllDay"
>
</
div
>
<
div
class
=
"k-edit-label"
>
<
label
for
=
"description"
>Bechreibung</
label
>
</
div
>
<
div
class
=
"k-edit-field"
data-container-for
=
"description"
>
<
textarea
name
=
"description"
class
=
"k-textbox"
data-bind
=
"value:description"
></
textarea
>
</
div
>
<
div
class
=
"k-edit-label"
>
<
label
for
=
"recurrenceRule"
>Wiederholen</
label
>
</
div
>
<
div
data-container-for
=
"recurrenceRule"
class
=
"k-edit-field"
>
<
div
data-bind
=
"value:recurrenceRule"
id
=
"recurrenceRule"
name
=
"recurrenceRule"
data-role
=
"recurrenceeditor"
></
div
>
</
div
>
<
div
id
=
"resourcesContainer"
>
</
div
>
<
script
>
jQuery(function() {
var container = jQuery("\#resourcesContainer");
var resources = jQuery("\#Schedules").data("kendoScheduler").resources;
dbg = resources;
for( var resource = 0; resource<
resources.length
; resource++) {
jQuery(kendo.format('<div
class
=
"k-edit-label"
><
label
for
=
"{0}"
>{1}</
label
></
div
>', resources[resource].name, resources[resource].title))
.appendTo(container)
var labcont = jQuery(kendo.format('<
div
class
=
"k-edit-field"
></
div
>'))
.appendTo(container)
if(resources[resource].multiple) {
jQuery(kendo.format('<
select
data-bind
=
"value: {0}"
name
=
"{0}"
>', resources[resource].field))
.appendTo(labcont)
.kendoMultiSelect({
dataTextField: resources[resource].dataTextField,
dataValueField: resources[resource].dataValueField,
dataSource: resources[resource].dataSource,
valuePrimitive: resources[resource].valuePrimitive,
itemTemplate: kendo.format('<
span
class
=
"glyphicon glyphicon-user"
style
=
"color:\#= data.{0}?{0}:"
none" \#"></
span
>\#={1}\#', resources[resource].dataColorField, resources[resource].dataTextField),
tagTemplate: kendo.format('<
span
class
=
"glyphicon glyphicon-user"
style
=
"color:\#= data.{0}?{0}:"
none" \#"></
span
>\#={1}\#', resources[resource].dataColorField, resources[resource].dataTextField)
});
} else {
jQuery(kendo.format('<
select
data-bind
=
"value: {0}"
name
=
"{0}"
>', resources[resource].field))
.appendTo(labcont)
.kendoDropDownList({
dataTextField: resources[resource].dataTextField,
dataValueField: resources[resource].dataValueField,
dataSource: resources[resource].dataSource,
valuePrimitive: resources[resource].valuePrimitive,
optionLabel: "Unbestimmt",
template: kendo.format('<
span
class
=
"k-scheduler-mark"
style
=
"background-color:\#= data.{0}?{0}:"
none" \#"></
span
>\#={1}\#', resources[resource].dataColorField, resources[resource].dataTextField)
});
}
}
});
messageTranslate();
<\/script>
</
script
>
many thanks,
Chris