TestScheduler
, extending Scheduler<ISchedulerEvent>
).<input>
element shows the correct value.When editing a recurring series (with a RecurrenceRule
like below):
DTSTART;TZID=Europe/London:20240626T090000
DTEND;TZID=Europe/London:20240626T170000
RRULE:FREQ=WEEKLY;BYDAY=TU
Is this behavior expected when RecurrenceRule
is applied, i.e., does Kendo’s Scheduler reuse a shared RecurrenceEditor
instance or observable model across views?
<div id="DivMainContent" class="content-region">
<div class="popup-box-head accent-colour-background clearfix">
<div class="box-title normal-text left">
Select Start and End Times
</div>
<div class="button-funcs right">
<a href="javascript:void(0);" title="Save" id="repair-manage-diary-difference-btnadd">
Save
</a> | <a href="javascript:void(0);" title="Close" class="close">Close</a>
</div>
</div>
<div class="popup-box-main fieldset start-end-popup">
<form action="/read/data" id="manage-diary-difference-new-frm" method="post"><input data-val="true" data-val-required="The DiaryDetailId field is required." id="DiaryDetailId" name="DiaryDetailId" type="hidden" value="152" /><input id="Timestamp" name="Timestamp" type="hidden" value="AAAAAAADEjI=" /><input id="TimestampString" name="TimestampString" type="hidden" value="AAAAAAADEjI=" /><input data-val="true" data-val-required="The Id field is required." id="OwnerDiary_Id" name="OwnerDiary.Id" type="hidden" value="25" /><input id="ParentCalendar_TimestampString" name="ParentCalendar.TimestampString" type="hidden" value="AAAAAAACldk=" /><input data-val="true" data-val-required="The CalendarId field is required." id="ParentCalendar_CalendarId" name="ParentCalendar.CalendarId" type="hidden" value="3" /><input data-val="true" data-val-required="The MondayWorking field is required." id="ParentCalendar_MondayWorking" name="ParentCalendar.MondayWorking" type="hidden" value="True" /><input data-val="true" data-val-required="The TuesdayWorking field is required." id="ParentCalendar_TuesdayWorking" name="ParentCalendar.TuesdayWorking" type="hidden" value="True" /><input data-val="true" data-val-required="The WednesdayWorking field is required." id="ParentCalendar_WednesdayWorking" name="ParentCalendar.WednesdayWorking" type="hidden" value="True" /><input data-val="true" data-val-required="The ThursdayWorking field is required." id="ParentCalendar_ThursdayWorking" name="ParentCalendar.ThursdayWorking" type="hidden" value="True" /><input data-val="true" data-val-required="The FridayWorking field is required." id="ParentCalendar_FridayWorking" name="ParentCalendar.FridayWorking" type="hidden" value="True" /><input data-val="true" data-val-required="The SaturdayWorking field is required." id="ParentCalendar_SaturdayWorking" name="ParentCalendar.SaturdayWorking" type="hidden" value="False" /><input data-val="true" data-val-required="The SundayWorking field is required." id="ParentCalendar_SundayWorking" name="ParentCalendar.SundayWorking" type="hidden" value="False" /> <div id="error-diary-difference-overlap">
<span id="error-lable-manage-diary-difference-overlap" class="k-invalid-msg-custom">
</span>
</div>
<div class="line clearfix">
<label for="day-selected" class="field-text">
Select Day
</label>
<div class="fieldform">
<input data-uid="c0a5911c-7f0b-4e73-ba95-eaa9f2f733f2" data-val="true" data-val-range="Please enter Day" data-val-range-max="6" data-val-range-min="0" id="SelectedDays" name="SelectedDays" type="text" value="5" /><script>
kendo.syncReady(function(){jQuery("[data-uid='c0a5911c-7f0b-4e73-ba95-eaa9f2f733f2']").kendoDropDownList({"change":NameSpace.RepairManageTimeSlots.ChangeWorkingDay,"dataSource":[{"Key":1,"Value":"Monday"},{"Key":2,"Value":"Tuesday"},{"Key":3,"Value":"Wednesday"},{"Key":4,"Value":"Thursday"},{"Key":5,"Value":"Friday"}],"animation":false,"dataTextField":"Value","height":300,"autoBind":true,"dataValueField":"Key","rounded":"null"});});
</script>
</div>
</div>
<div class="line clearfix">
<label for="start-time" class="field-text">
Start Time
</label>
<div>
<input data-val="true" data-val-required="Please enter Start time" id="StartTime" name="StartTime" type="text" value="00:00" /><script>
kendo.syncReady(function(){jQuery("#StartTime").kendoTimePicker({"format":"HH:mm","min":new Date(2025,9,14,0,0,0,0),"max":new Date(2025,9,14,0,0,0,0),"interval":15});});
</script>
<span class="field-validation-valid" data-valmsg-for="StartTime" data-valmsg-replace="true"></span>
</div>
</div>
<div class="line clearfix">
<label for="end-time" class="field-text">
End Time
</label>
<div>
<input data-val="true" data-val-required="Please enter end time" id="EndTime" name="EndTime" type="text" value="23:59" /><script>
kendo.syncReady(function(){jQuery("#EndTime").kendoTimePicker({"format":"HH:mm","min":new Date(2025,9,14,0,0,0,0),"max":new Date(2025,9,14,0,0,0,0),"interval":15});});
</script>
<span class="field-validation-valid" data-valmsg-for="EndTime" data-valmsg-replace="true"></span>
</div>
</div>
<div class="line clearfix">
<label for="effective-from" class="field-text">
Effective from
</label>
<div class="fieldform">
<input data-val="true" data-val-required="Please enter Effective from" endDatePicker="EffectiveToDate" id="EffectiveFromDate" name="EffectiveFromDate" type="text" value="Wed, Oct 15 2025" /><script>
kendo.syncReady(function(){jQuery("#EffectiveFromDate").kendoDatePicker({"change":NameSpace.RepairManageDiaryDifferences.startChangeCalendar,"open":Helpers.DatePicker.calendarOpen,"format":"ddd, MMM dd yyyy","parseFormats":["dd/MM/yyyy","ddd, MMM dd yyyy"],"min":new Date(1900,0,1,0,0,0,0),"max":new Date(2099,11,31,0,0,0,0)});});
</script>
<span class="field-validation-valid" data-valmsg-for="EffectiveFromDate" data-valmsg-replace="true"></span>
</div>
</div>
<div class="line clearfix">
<label for="effective-to" class="field-text">
Effective to
</label>
<div class="fieldform">
<input id="EffectiveToDate" name="EffectiveToDate" startDatePicker="EffectiveFromDate" type="text" value="Tue, Oct 21 2025" /><script>
kendo.syncReady(function(){jQuery("#EffectiveToDate").kendoDatePicker({"change":NameSpace.RepairManageDiaryDifferences.endChangeCalendar,"open":Helpers.DatePicker.calendarOpen,"format":"ddd, MMM dd yyyy","parseFormats":["dd/MM/yyyy","ddd, MMM dd yyyy"],"min":new Date(1900,0,1,0,0,0,0),"max":new Date(2099,11,31,0,0,0,0)});});
</script>
<span class="field-validation-valid" data-valmsg-for="EffectiveToDate" data-valmsg-replace="true"></span>
</div>
</div>
<div class="line clearfix">
<label for="effective-to-date" class="field-text">
Effective to date js
</label>
<div class="fieldform">
<input id="TestDate" name="TestDate" type="text" />
<script>
kendo.syncReady(function () {
jQuery("#TestDate").kendoDatePicker({
"format": "ddd, MMM dd yyyy",
"parseFormats": ["dd/MM/yyyy", "ddd, MMM dd yyyy"],
"min": new Date(1900, 0, 1, 0, 0, 0, 0),
"max": new Date(2099, 11, 31, 0, 0, 0, 0),
"change": function (e) {
console.log("On Change of date picker");
console.log(e);
e.preventDefaut();
var value = this.value();
console.log(value);
}
});
});
</script>
<span class="field-validation-valid" data-valmsg-for="TestDate" data-valmsg-replace="true"></span>
</div>
</div>
<div class="line clearfix">
<label for="notes" class="field-text">
Comments
</label>
<div class="fieldform">
<input id="Notes" name="Notes" type="text" value="" />
</div>
</div>
</form> </div>
</div>
<div id="DivMessage_AppointmentOutsite" style="display: none" class="content-region">
<div class="popup-box-head accent-colour-background clearfix">
<div class="box-title normal-text left">
Confirm
</div>
<div class="button-funcs right">
<a id="btnClose-appointmentOutside" href="javascript:void(0);" title="Close">Close</a>
</div>
</div>
<div id="message-content" class="popup-box-content">Message.</div>
<div class="YNButton clearfix" id="buttons-message">
<button id='btnOk-appointmentOutside' type="button" title="Ok" class="active-background active-text">
Ok
</button>
</div>
</div>
<div id='hiddenDiv1760456443763' style='display:none'></div>
Hello there,
i have a project with MVC Asp.Net, Kendo v. "2024.4.1112.462" and would like to
- load data into grid, the data is returned by MVC Controller
- the spinner with the "loading data in progress" should never appear
- so the user can "play" on the grid header filters while loading data is ongoing
- when the user clicks on "apply" on grid header filter, the previous request must be canceled to run the new request with latest filters applied, in this way the c# CancellationToken is Canceled on server side.
Can you tell me how to "cancel" the actual http request from the kendo grid (client) and execute the new one, as described in the last point?
thanks in advance
Good morning,
i am using MVC.ASP net in my project and i'm trying to send the DataSourceRequest to a service , via rabbitmq.
the message should contains all the request filters set in the ui in order to create an excel report. i have tried to use the System.Text.Json serialization but it's not working properly. it serializes only the first level props.
i have found a ".ToJson" extension but it's returning a Dictionary<string, object>, not usefule here.
can you suggest how to serialize the DataSourceRequest in Json format? with all nested and recursive properties?
the filters can be about dates, strings, combobox, and so on
thanks in advance
Hi Guys
This stupid little issue is taking up way way too much time for me to resolve..
I am setting a timepicker as follows:
<td class="tg-7uzy">
@Code
With Html.Kendo().TimePicker()
.Name("1Open")
.Events(Function(events) events.Change("settime"))
.Value(New TimeSpan(0, Model.Hours(1).open, 0))
.Min(New TimeSpan(0, 0, 0))
.Max(New TimeSpan(0, 0, 0))
.Render()
End With
End Code
</td>
The result is as per the attached screen shot.
It 'looks like' the values are set right as the timepickers have the correct times , but when you drop down, it always starts at midnight and the current time is not highlighted. I assume the timepicker needs the value to be set with AM or PM .. but that can't be done from a TimeSpan or a datetime.. the am pm always has dots ( a.m. , p.m.)
If tried adding .Format("HH:mm:tt") and .ParseFormats(New String() {"HH:mm:tt"}) etc, but I just can't get it to work. ( I've tried allot more formats than just these, I've tried "HH:mm tt" ,"HH:mm t.t." ( cause it's the dots around the am pm which seems to be whats stopping.))
Feeling a bit stupid having to ask this as it seems to be a straightforward thing.
I'm sure I will have a Face palm moment when shown the error in my ways.. but I've got to the point of not caring! :)
Cheers
Rob
Hi,
I have a Kendo Grid and its first column is a Datetime and Its a Kendo DatePicker.
When the user click on Add new record button then the 1st cell which is a date picker should be auto focus.
Note: When the user click on Add new record button then we are sorting the grid in ascending order so that the new row should appear on the top, which is working fine but the 1st cell of the newly created row a Kendo Date picker in not in focus.
But when the user click on the first cell of the newly created row, then it opens the datepicker to allow user to select a date.
My requirement is when i am clicking the Add new record button then
1. It should sort in ascending order (Which is working now)
2. The 1st cell of the Kendo Datepicker should auto focus like the above screenshot.
I am using a Kendo.Filter object like the following to filter results in a Kendo Grid:
@(Html.Kendo().Filter<CustomPersonClass>()
.Name("personFilter")
.DataSource("peopleDS")
.ApplyButton(false)
.Fields(f =>
{
f.Add(p => p.LastName).Label("Last Name");
f.Add(p => p.FirstName).Label("First Name");
f.Add(p => p.MiddleName).Label("Middle Name"); f.Add(p => p.StartDate).Label("Start Date").Operators(o => o.Date(d => d.Eq("Is equal to").Gte("Greater than equal").Lte("Less than equal")));
})
)
I have helper code to handle the toolbar in my Kendo Grid like the following, :
@helper ToolbarTemplate()
{
<button class="k-button k-button-solid k-button-solid-base" id="applyFilter"><span class="k-icon k-i-filter"></span>Apply Filter</button>
<button class="k-button k-button-solid k-button-solid-base" id="clearFilter">Reset</button>
<button class="k-button k-grid-excel k-button-solid k-button-solid-base"><span class="k-icon k-i-excel"></span>Export to Excel</button>
}
I also have some JavaScript in a function to apply the filter when the Apply Filter button is clicked, as seen here:
$("#applyFilter").click(function (e) { //e.preventDefault(); var myFilter = $("#personFilter").getKendoFilter(); localStorage["kendo-person-filter-options"] = kendo.stringify(myFilter.getOptions().expression); myFilter.applyFilter(); });
The problem I am having is if I enter an invalid Leap Year date (e.g. 2/29/2003, since 2023 didn't have a February 29th), I get no data back; however, if I enter a valid Leap Year (e.g. 2/29/2004), my Kendo Grid will show data. Is there a way to validate the date that is being entered manually into a DatePicker field used for filtering? That is, if I use the DatePicker, it will not show me 2/29/2003 as an option, but if I type in 2/29/2003 and click Apply Filter, it doesn't throw any kind of error about 2/29/2003 being invalid.
I have a datepicker in a view
@(Html.DatePickerFor(model => model.EventDate) .Format("{0:dd/MM/yy}") )
I need to retrieve the date from the datepicker to use as the minimum value for a datetimepicker in a list view.
shiftStart.kendoDateTimePicker({ timeFormat: "HH:mm", format: "dd/MM/yyyy HH:mm", // min: new Date(vYear, vMonth - 1, vDay, vHour, vMinute), interval: { minutes: 15 } });
How do I get that value?
We want to use the DatePicker like this:
<div class="row">
<div class="col">
<div class="form-group">
@Html.LabelFor(model => model.TESTDATUM, htmlAttributes: new { @class = "control-label" })
<div>
@Html.Kendo().DatePickerFor(model => model.TESTDATUM)
@Html.ValidationMessageFor(model => model.TESTDATUM, "", new { @class = "text-danger" })
</div>
</div>
</div>
</div>
But this renders the control like this:
We're currently using the following workaround to trim the overlapping part, which feels kind of 'hacky':
<div style="width: 17.5em">
@Html.Kendo().DatePickerFor(model => model.TESTDATUM)
</div>