I want to set the mask-character in the TimeDurationPicker.
Display as "08:__" or "__:15" is ugly and I want to display this as "08:00" or "00:15"
When typing in the search input a value that does not match any item of the Filemanager's content view, while a subfolder is selected, the expand arrow disappears.
The expand arrow disappears.
The arrow should not disappear and the search to work correctly.
Hello!
I was recommended to submit a feature request for this in this feature request. I also commented on a similar forum question.
Dynamically adding/removing tiles via the setOptions method works, however in my case I'm using the containers/tiles to display other widgets (like charts and data grids) in a dashboard. Re-initializing the TileLayout via setOptions forces me to recreate my data widgets, some of which are loading fairly large datasets.
I've been able to work around this using the internal source code for the kendoUI TileLayout, which I dislike doing and am always just one update away from my solution breaking. So far it works - I can add/remove tiles without destroying and re-initializing. I did run into some trouble with resizing and reordering, but I think I've gotten around that.
It seems a common usage for the TileLayout is to display dashboards/remote data. I do think implementing a solution to add/remove tiles without re-initializing would be beneficial for many developers using this widget.
Thank you,
-Alexa
/**
* At the time of this writing, the only kosher way to dynamically add/remove tiles to a kendoUI TileLayout is
* to use the `setOptions` method and pushing/slicing the `containers` array. However, doing this destroys the
* TileLayout and re-initializes it. We would have to re-initialize all the data widgets and submit requests to
* the server all over again. So... I lifted this from the KendoUI TileLayout source code and modified it to
* suit our needs.
* It seems to work, but it just one update away from breaking. I guess I like living on the edge.
*
* @deprecated
* @param options {Object} the kendo.ui.TileLayout `containers` item configuration
* @param idx {Number} the index of the tile to add
* @param kendoTileLayout {kendo.ui.TileLayout} the kendo tile layout instance
*/
const addContainer = (options, idx, kendoTileLayout) => {
const body = $(`<div></div>`).addClass('k-tilelayout-item-body k-card-body');
const headerSettings = options.header;
const id = kendo.guid();
const container = $(`<div></div>`)
.addClass('k-tilelayout-item k-card')
.attr({
id: id,
role: 'listitem',
'aria-keyshortcuts': 'Enter',
});
if (headerSettings && (headerSettings.template || headerSettings.text)) {
const header = $('<div></div>').addClass('k-tilelayout-item-header k-card-header');
const headerContent = headerSettings.text ? `<div class="k-card-title">${headerSettings.text}</div>` : null;
if (kendoTileLayout.options.reorderable) {
header.addClass('k-cursor-move');
}
header.append(headerContent || kendo.template(headerSettings.template)({}));
header.appendTo(container);
}
body.append(kendo.template(options.bodyTemplate)({}));
body.appendTo(container);
container.appendTo(kendoTileLayout.element);
kendoTileLayout._addContainer(container, options, idx, id);
};
/**
* @deprecated
* This also is using KendoUI internal source code. If/when the folks at Telerik decide to implement a different
* solution for dynamically adding/removing tiles, that should be used instead and this should be removed.
*
* @param widgetId {Number} the id of the widget to remove
* @param kendoTileLayout {kendo.ui.TileLayout} the kendo tile layout instance
*/
const removeContainer = (widgetId, kendoTileLayout) => {
const widgetRegex = new RegExp(`${widgetId}`);
const matchedContainer = kendoTileLayout.options.containers.find(container => container.bodyTemplate.match(widgetRegex));
const containerGuid = matchedContainer.id;
const containerItem = kendoTileLayout.itemsMap[containerGuid];
const containerItemIdx = kendoTileLayout.items.indexOf(containerItem);
kendoTileLayout.options.containers.splice(containerItemIdx, 1);
delete kendoTileLayout.itemsMap[containerGuid];
kendoTileLayout.items.splice(containerItemIdx, 1);
$(`#widget-${widgetId}`).closest('.k-tilelayout-item.k-card').remove();
kendoTileLayout._updateContainers();
// I've got a bad feeling about this.
kendoTileLayout.element.off('mousemove'); // after removing a container, the resize handles weren't working.
kendoTileLayout.resizable.destroy();
kendoTileLayout.element.find('.k-resize-handle').remove();
kendoTileLayout.resizeHandle = null;
kendoTileLayout._resizable();
};
Currently, the Grid provides autoFitColumn and autoFitColumns methods, while the Treelist provides built-in only the autoFitColumn. I would like to have built-in support for the TreeList components, so the behavior to be equivalent to the Grid - example.
dataBound: function(e) {
e.sender.autoFitColumns();
},
var datepicker = $("#datepicker").data("kendoDatePicker").reset();
Hello,
My use case:
On grid dataBound, I am iterating over the table rows to perform some piece of custom logic on the row based off of the backing dataItem. Our production site is using version 2024.1.130, and everything is working great. Our next release we've updated to version 2024.2.514, and when we try adding a record, we get an error; when we try to access the dataItem of the last table-row - the dataItem is undefined. The grid.items() in my case is an array of size 21, and the internal _data array is size 20.
Repro conditions (as far as I can tell):
My workaround:
Simply perform a null check on the dataItem before doing the logic. We are calling DataSource.read in the DataSource.sync success callback anyway, so the grid will reload and the dataBound event will be handled afresh.
I've created the below dojo snippet to demonstrate a simplified version of my use case. I tested with 2024.1.130 and seems to work fine. I noticed the issue starting at version 2024.1.319.
https://dojo.telerik.com/INbSBrSg
A note: No, I don't actually use the internal _data property in my code, just for debugging purposes :)
Thanks!
-Alexa
On Kendo's grid Custom Command, there's a bug with "text" object of "command". The bug is we can't use space in the "text" object, not even %20. This is because the "text" object is appended on class attribute of the command button.
On Kendo's grid Custom Command, there's a bug with "text" object of "command". The bug is we can't use space in the "text" object, not even %20. This is because the "text" object is appended on class attribute of the command button.
Find Node or search mode
We are using Metro theme, and many clients say us that is a little bit difficult to distinguish parent from child items in a panelbar because they are too similar. Is possible to introduce an left padding to recreate a fake tree?
Add client-side filter method that automatically updates the filter menu options (dropdowns and values) according to the filters described in the filter expression.
How about a simple addition to zooming, whereby the zoom just automatically zooms into the current data set by filtering off the outer elements? For example, have a zoomStep property, which defines the number of elements to filter off the start and end of the data. This would allow really simple zooming without having to write filters and would allow for easy use in shared code scenarios (eg, we have a single Knockout custom binding for all our charts).
We have defined a work start and end time for the scheduler. However if the user shows full day in the scheduler we want to make sure the scheduler is scrolled to the start time (when the scheduler is either init or when the user clicks on the show all day button). So basically if there is an API exposed to make the scheduler scroll to a given time then this will work. Please also refer to ticket#: 845019
See http://hammerjs.github.io/
The toolbar has buttons and split buttons but no menu button. A menu button is a button which triggers a popup button; in other words it is a splitbutton without the split. See http://getbootstrap.com/components/#btn-dropdowns-single Easy to do and really useful!
Per the post here: http://www.telerik.com/forums/does-the-kendo-ui-grid-support-column-header-templates In order to achieve a custom header, we have to manipulate the DOM via jquery. That can get messes and makes the grid less maintainable.
Sitefinity uses KendoAll everywhere, here's an example of how it's used CMS-wide https://github.com/Sitefinity/feather/blob/a9a417115096af67629603cf0eaf52e8a6810d06/Telerik.Sitefinity.Frontend/Mvc/Views/Designer/Designer.cshtml#L53 The basic idea is that when the page is built at runtime all the references to the script get combined and it's only served once. So the stock widgets just all reference KendoAll and if there's 100 widgets on a page that the user creates, KendoAll only comes down once... So in the SF backend we can set what "ScriptRef.KendoAll" means... like which script it points to, or even to use the CDN version. Typically what I do to cut the size is to change the KendoAll script to KendoWeb CDN because nothing in Sitefinity uses KendoMobile so why constantly deliver the massive bundle. However there's been a bunch of times where KendoDataViz has been required on the sites, and now I'm stuck... because you can't just add KendoWeb and KendoDataviz seperatly on a page due to the overlap of functionality. Option 1: Change the entire site back to KendoAll Option 2: Generate a custom build and use that Problem with option 1 is I'm back to delivering a couple meg file to users Problem with option 2 is I can no longer use a CDN, and every release I'm having to keep re-generating a new bundle file. It would be very very very nice if a pre-generated DataViz+Web (and seperate DataViz+Mobile) build was available on the CDN to use.
As mentioned here: http://www.telerik.com/forums/please-make-apis-used-in-your-sample-projects-official-public you make use of kendo.date and kendo.timezone in your examples. It would be nice to know a bit more about those. And to have them available in typescript.