Hello!
I have a problem with filters in my scheduler: as shown in your base example,
I use a first filter applied on a member field called LabelTypeID (the same as OnwerID in your example).
My Model has a second (int ?) member called LabelID
In some case I have to filter only the LabelID (to select a single label, associated to the Calendar Event)
So, in my template I added a second resource for the LabelID, where the binding returns all possible labels:
.Resources(resource =>
{
resource.Add(m => m.LabelTypeID)
.DataTextField(
"Text"
)
.DataValueField(
"Value"
)
.DataColorField(
"Color"
)
.BindTo((
new
ACSDoorSignage.BIZ.LabelTypeBiz()).GetAllLabelTypesAsRazorArray(
false
));
resource.Add(m => m.LabelID)
.DataTextField(
"Text"
)
.DataValueField(
"Value"
)
.BindTo((
new
ACSDoorSignage.BIZ.LabelBiz()).GetLabelsAsRazorArray(
false
));
})
This is the filter that I try to use, where labelValue is one of the value returned in the binding (eg 1)
if
(labelValue != -1) {
var filter = {
logic:
"or"
,
filters:
new
Array()
};
filter.filters.push(
{
operator
:
"eq"
,
field:
"LabelID"
,
value: labelValue
});
}
var scheduler = $(
"#scheduler"
).data(
"kendoScheduler"
);
scheduler.dataSource.filter(filter);
The filter Always fails and I see on the browser:
Uncaught TypeError: (d.LabelID || "").toLowerCase is not a function
Can you help me to unserstand what happened?
If I'd like to apply a filter, MUST I Always define a resource for that filter?