There are several problems when extending a widget .
In this example we have extended the DropDownTree.
selectedProductId: [{ id: "a" }, { id: "c" }],and not
selectedProductId: ["b", "c"]So some properties are supported and other that have been added later not.
I present you the source code (https://dojo.telerik.com/ewewERiD)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Untitled</title>
<script src="https://code.jquery.com/jquery-1.12.3.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2022.2.510/js/angular.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2022.2.510/js/jszip.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2022.2.510/js/kendo.all.min.js"></script>
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2022.2.510/styles/kendo.default-ocean-blue.min.css">
</head>
<body>
<input id="dropdowntreeExt" data-bind="value: selectedProductId">
<script>
(function ($) {
var kendo = window.kendo,
ui = kendo.ui,
DropDownTree = ui.DropDownTree;
var DemoDropDownTree = DropDownTree.extend({
init: function (element, options) {
DropDownTree.fn.init.call(this, element, options);
$(element).parent().addClass("k-picker-solid k-picker k-rounded");
},
options: {
name: "DemoDropDownTree",
checkboxes: true,
fillMode: "flat"
}
});
ui.plugin(DemoDropDownTree);
})(jQuery);
var viewModel = kendo.observable({
selectedProductId: [{ id: "a" }, { id: "c" }],
//selectedProductId: ["b", "c"],
products: [
{ id: "a", name: "Coffee" },
{ id: "b", name: "Tea" },
{ id: "c", name: "Juice" }
]
});
kendo.bind($("#dropdowntreeExt"), viewModel);
//kendoDemoDropDownTree
//kendoDropDownTree
$("#dropdowntreeExt").kendoDemoDropDownTree({
valuePrimitive: true,
dataTextField: "name",
dataValueField: "id",
//checkboxes: true,
dataSource: viewModel.products//,
//fillMode: "flat"
});
alert($("#dropdowntreeExt").data("kendoDemoDropDownTree").options['fillMode']);
</script>
</body>
</html>(!) This also applies in the latest versions as well (2022R2 and 2022R3).
2. if you place the properties in kendoDropDownTree, everything works well and the datasource also accepts the format selectedProductId: ["b", "c"]
3. Many options, like autoWidth property, don't apply in extended widgets (i.e. MultiSelect, DropDownList, DropDownTree etc).
4, In DropDownTree for the extended widget, valuePrimitive: true is not applicable. Instead of returning an array of the selected keys, it returns an array of the entire item.
Hello Kendo UI Team,
I found one bug regarding the multidrop down selection while we want to add new on search text we enter some text and than after click on clear button and click on the add new button text is saved.
I attached one video for the same so you can easily find the issue.
Thanks & Regards.
Hi Support Team,
Would like to request for the feature below:


This dashboard layout quite exciting.
please refer this url
easy to do our own Analytic dashboard
In the scheduler component, create a new event. Select monthly for the repeat. If you are using the Bootstrap theme the day will be cut off. The problem lies in the kendo.common-bootstrap.css file.
Overriding to 10em works. The same issue exists on the demo site today which I assume is running the current version (https://demos.telerik.com/kendo-ui/scheduler/index?autoRun=true&theme=bootstrap-main):
From the kendo.common-bootstrap.css file:
This cuts off the dates which have ample room to be displayed (this is my app):
I overrode this to remove the max-width:
My recurrence rule is: FREQ=MONTHLY;COUNT=2;INTERVAL=1;BYSETPOS=2;BYDAY=WE;WKST=SU. This event falls on the second Wednesday of the month for two months in a row. When I edit the event, the wrong option is picked. Note in the screenshot attached we are on 11/09/2022 which is the second Wednesday. And the scheduler correctly shows this event. But the edit window sets the properties wrong. I am using a custom template for the edit window, however the recurrence editor portion is unmodified.
I was able to fix this in the Kendo.all.js file directly. The highlighted lines below were added. When I publish this for customers I use the Kendo custom download tool to get a minified script of only what I need. I then need to carefully port this change using Notepad++. This makes it tough to update versions which is why I am a few versions back.
The schedulers are sitting inside a tab strip control. When the page loads, some computations are done by Kendo for setting up column widths. I feel there is a scrollbar issue somewhere. As it is a larger screenshot, please look at the attached Scrollbar size computation issue.png file. Start with the “All day” events. Notice the first event on Monday crosses the line into Tuesday just a little bit. This is highlighted and indicated with a “2” on it. Now look at the events for the week – numbers 3, 4, and 5. The events span into the next column a little more each time. They WOULD be correct if there was no scrollbar on the right! Now look at the events below with a time. “1” has the correct left offset from Monday’s left side. As you go to 2, 3, 4, and 5, this offset grows. It’s the same issue.
Now look down at “6”. Notice the scheduler has no footer and is drawing far too low.
The problem is that the tabstrip content is allowing scrolling. I can see this in the F12 window. Notice the scheduler does not have the scrollbar:
But the tab strip content DOES have a scrollbar:
Please note that I am specifically blocking the tab strip from scrolling in my code. The scheduler should handle the scroll.
So, I added the following CSS which fixes this issue for me:
See the Scrollbar size computation fixed.png file for the end result. The scheduler is scrolling now instead of the tab strip.
In my application, when a user changes their view date on the scheduler, there are two other schedulers on the other two tabs of the tab strip that are not visible. The dates here get changed too. This happens in a navigate event. They end up in a broken state from this. It seems the issue is that they are not visible so rendering is not happening. I found a hacky way to work around this. I am adding a newDate property and a needRefresh property to the scheduler. When a tab is activated, the scheduler in that tab is checked. If it needs a refresh, it is refreshed. If it has a new date, that is also set.
I have some client events for creating/updating events.
They are currently the same and call the same method:
Due to JSON serialization, I end up with dates being serialized as ticks when sent to the client. This function converts these ticks to a proper JavaScript Date() object. The code works perfectly fine.
We run into an error on random occasions. This happens maybe once a day per user. It is not repeatable but it was fixable. This code is from the Kendo.all.js file. The highlighted lines were added:
99% of the time things work fine. But sometimes this convertData() method is called before the client methods are called. Perhaps a threading or AJAX or promise issue? Perhaps there is one scenario where the client method is not being called? The real bug here is that convertData() can sometimes get called before the client’s event where I would have corrected by dates. This is another case where it is tough to upgrade Kendo versions because I need to port this as minified JavaScript to the custom downloaded minified file.
Here is the text from the browser’s F12 window when we hit this error (If I have not applied the fix above):
kendo?v=Brdc2jM0hzOFDq3Kj04CDAYP5xcGXPDm3x-vN4slHho1:1 Uncaught TypeError: f.start.getTimezoneOffset is not a function
at ai (kendo?v=Brdc2jM0hzOFDq3Kj04CDAYP5xcGXPDm3x-vN4slHho1:1:1182628)
at init.data (kendo?v=Brdc2jM0hzOFDq3Kj04CDAYP5xcGXPDm3x-vN4slHho1:1:1182352)
at init._readData (kendo?v=Brdc2jM0hzOFDq3Kj04CDAYP5xcGXPDm3x-vN4slHho1:1:96753)
at init._push (kendo?v=Brdc2jM0hzOFDq3Kj04CDAYP5xcGXPDm3x-vN4slHho1:1:90345)
at init._pushUpdate (kendo?v=Brdc2jM0hzOFDq3Kj04CDAYP5xcGXPDm3x-vN4slHho1:1:90237)
at init.e (jquery?v=9zl6bqYAmbr9FSUZX0T1VSNbWQ5Gc01X9-RaVvSk-7A1:1:95021)
at init.a (signalr?v=4OffKgJP3BKl-a0HMCu8SoFYj-iqmWy-1sbyLwYhtvk1:1:36810)
at init.dispatch (jquery?v=9zl6bqYAmbr9FSUZX0T1VSNbWQ5Gc01X9-RaVvSk-7A1:1:55579)
at y.handle (jquery?v=9zl6bqYAmbr9FSUZX0T1VSNbWQ5Gc01X9-RaVvSk-7A1:1:53581)
at Object.trigger (jquery?v=9zl6bqYAmbr9FSUZX0T1VSNbWQ5Gc01X9-RaVvSk-7A1:1:78599)
I have an event template. Inside this template I am using a MultiSelect. It is defined like: <select data-down-Arrow="true"… . The downArrow property does not work. I discovered via debugging the kendo.all.js file the problem. Fortunately this one is fixable outside that file:
I have a number of DataSource items in the event editor template. They are small JSON objects and it would be dumb to read them from the server each time. They do not change and are part of the page load. You can see here I am just serializing them into the page itself:
This works 9 out of 10 times. But sometimes the dataset is empty. Which is crazy because I am always filling it. I managed to find a work around on the event edit event that gets called but this seems strange to do. Not sure if there is a true bug here or not. Feels like it because this code should not have been needed:
The scheduler is either editable or not. And deletion events are either allowed or not. This isn't a black and white thing. Consider employees at a store. They can see each other's events for scheduling but they are only allowed to modify their own events. So I want editing and deleting enabled but conditionally.
In my case I hook into the databound event and I add a class "nodelete" on events that cannot be deleted. Then I have CSS that hides the "X" button on hover and I block the edit window from appearing.
However, the keyboard still prompts for a deletion. I think there should be some function for whether an event is editable. That, or an event should fire before the deletion prompt so I can stop it from occurring.
Here's a hacky work around. I don't like accessing properties starting with underbar as they are considered private and subject to change but I don't see a better way.
kendo-ui-license.js button.Clicking on the kendo-ui-license.js button attempts to download multiple files of the same type:
Clicking on the kendo-ui-license.js button should not attempt to download multiple files of the same type at once
When a decimal number has 8 digits after the decimal separator and '#' is used for formatting the precision is lost and the number is rounded.
kendo.toString(0.00000015,"###.########" returns 0.0000002
The number should not be rounded and the precision should not be lost. The results should be the same with kendo.toString(0.00000015,"n8") and kendo.toString(0.00000015,"0.00000000")
Apparently the dark theme we are using adds the glass.png to tabs. Great. Looks good. However it also seems to be applying to the area inside the tab as well.
It's a little hard to see on most of our popups with tabs but it's visible through gaps in the controls. I have removed the top layer in this image so you can see it. Underneath is the html for one of the pages affected so you can see we aren't setting them up incorrectly. This is the kendo black theme.
@using DispatchCrude.Models;
@model OriginEditModel
@* NOTE: This script section must be at the top of the page for the pop-up to function properly. It cannot be moved to the bottom of the page. *@
<div>
@Html.HiddenFor(x => x.ID)
<ul class="gridErrors NullValidator"></ul>
@(Html.Kendo().TabStrip()
.Name("tabstrip")
.Items(tabstrip =>
{
tabstrip.Add().Text("General").Selected(true).Content(@<text>
<div class="popup-editor-container">
<div class="popup-editor-column-sm">
<div class="popup-editor-label">
@Html.LabelFor(model => model.TimeZoneID).IsRequired()
</div>
<div class="popup-editor-field">
@Html.EditorFor(model => model.TimeZoneID, new { htmlAttributes = new { style = "width:120px; height:30px;" } })
</div>
</div>
<div class="popup-editor-column-sm">
<div class="popup-editor-label">
@Html.LabelFor(model => model.RegionID).IsRequired()
</div>
<div class="popup-editor-field">
@Html.EditorFor(model => model.RegionID)
</div>
<script>
function filterDestination() {
var dataItem = getGridEditRowModel();
let shipperIds = (dataItem.Products != null) ? dataItem.Products.map(x => x.ID).join(',') : -1;
let productIds = (dataItem.Shippers != null) ? dataItem.Shippers.map(x => x.ID).join(',') : -1;
return {
"regionid": dataItem.RegionID || -1,
"terminalid": dataItem.TerminalID || -1,
"productids": (shipperIds != '') ? shipperIds : '-1',
"shipperids": (productIds != '') ? productIds : '-1'
}
}
</script>
<div class="popup-editor-field">
@Html.EditorFor(model => model.PreferredDestinationID, new { table = "GetPreferredDestinations", controller = "origins", filter = "filterDestination()" })
</div>
</div>
</div>
</text>);
tabstrip.Add().Text("Oil Field").Content(@<text>
<div class="popup-editor-container">
<div class="popup-editor-column-sm">
<div class="popup-editor-label">
@Html.LabelFor(model => model.LeaseName).IsRequired()
</div>
<div class="popup-editor-field">
@Html.EditorFor(model => model.LeaseName)
</div>
<div class="popup-editor-label">
@Html.LabelFor(model => model.LegalDescription)
</div>
<div class="popup-editor-field">
@Html.EditorFor(model => model.LegalDescription)
</div>
</div>
</div>
</text>);
tabstrip.Add().Text("GPS").Content(@<text>
<div>
<div class="popup-editor-column-lg">
<div class="popup-editor-label">
@Html.LabelFor(model => model.GeoFenceRadiusMeters)
</div>
<div class="popup-editor-field">
@Html.EditorFor(model => model.GeoFenceRadiusMeters, new { htmlAttributes = new { style = "" } })
</div>
</div>
</div>
</text>);
})
)
</div>
<script>
$("#RegionID,#TerminalID").on("change", function () { refreshDestinations(); });
</script>
When a Kendo widget is initialized in a navigatable Drawer and the user clicks in the intiialized component an error Uncaught TypeError: Cannot read properties of undefined (reading 'attr') is thrown
An error: Uncaught TypeError: Cannot read properties of undefined (reading 'attr') is thrown
No error should be trhown even if the 'drawer-item' attribute is missing
Currently it is not possible to provide a selected date format template when the scheduler is shown in mobile "phone" mode.
It would be nice if this is configurable in the view: views: [
{
type: "day", minorTickCount: MinorTickCount,
selectedDateFormat: "{0:D}",
selectedDateFormatMobile: "{0:D}",
dateHeaderTemplate: kendo.template("<strong>#=kendo.toString(date, 'ddd d-M')#</strong>")
},
]
Require an Editor method to provide the cursor position as an integer representing the offset of the current cursor position from the start of the document with respect to the text displayed in the editor.
For example consider an editor displaying 'This is text content'. The underlying html will be <p><span>This is text content</span></p>. When cursor is placed after 'text', I would like to obtain the cursor position as 12 i.e. the offset based on the text displayed irrespective of the underlying html.