After upgrading our application from an older version of Kendo to v2022 R1 (301), we discovered a strange problem with the Kendo DatePicker popup calendar. Everything works fine on a desktop web browser but on a mobile phone the month calendar view renders as in the attached image:
Other calendar display modes work correctly. The problem seems to occur on all the phones we have tried (Android, iPhone).
The DatePicker control is instantiated on demand via Jquery function. No special DatePicker features used. Here is a snippet from the rendering function (ownerDiv is a parameter passed to the function):
var datepickerWrapper = ownerDiv.find('#end-date-wrapper');
datepickerWrapper.empty();
datepickerWrapper.append('<input id="chart-end-date" name="chart-end-date" style="width:8em" />');
datepickerDiv = historyDiv.find('#chart-end-date');
datepickerDiv.kendoDatePicker({
animation: false,
change: function (e) {
changeEnddate(e);
}
});
The only slightly unusual thing about this is the parent HTML is part of the detail pane for a Kendo grid. The popup calendar used to work just fine in the old version of Kendo we used to use (version circa 2018).
I'm at a loss. Android Chrome debugger running against a phone executing the DatePicker does not reveal any browser exceptions.
Any thoughts?
Jeff Benson
Senior Developer
New Boundary Technologies, Inc.
Update: I've been inspecting the rendered HTML in both Android/Chrome and desktop Windows/Chrome, looking for differences. I have only found two basic differences.
* On Android, the calendar table header ( <thead class="k-calendar-thead">...</thead> ) is for some reason rendering like a series of rows, instead of the expected header. This has the result of pushing the table body down so that most of the calendar rows are outside the visible area of the calendar view.
* Stylings assigned to the <div class="k-animation-container"...> are somewhat different between desktop and Android Chrome. Desktop styles include "box-sizing: content-box" whereas Android does not have this style.. Android includes "transform: translateZ(0px)" style, wheras desktop does not.
I'm not sure whether the styling differences are contributing to the defect but maybe?
Jeff