When the scrollable option of the Grid is set to "virtual: 'columns'", the reordering of the columns cannot be performed while dragging over the field headers.
Regression introduced with 2022.3.913
The columns cannot be reordered from the field headers. Instead, the field headers are flickering.
Screen recording - https://screenpal.com/watch/c0jrQ2Vpr8e
If the reordering is performed below the headers, it works properly.
Should be able to reorder the columns from the field headers without flickering.
When PivotConfiguratorV2 and Grid are configured on the same page and sortable and/or filterable are enabled for both components an error is thrown in the console when trying to filter.
The following error is thrown in the console:
Uncaught TypeError: Cannot read properties of undefined (reading 'close')
There should be no error in the console and it should be possible for both PivotConfiguratorV2 and Grid to be sortable and filterable.
In the draggable Grid, after new items are created the dragging of the rows does not work as expected.
Sometimes the rows can not be moved at all, sometimes it is dropped in the wrong place.
The rows should be dragged and dropped without any issue even after creating new items in the Grid.
The above behavior has been requested several times in the following forum thread.
https://www.telerik.com/forums/grid-column-locking-with-detail-template
I would like for this limitation to be revised or for some other solution to be provided.
Test Environment:
OS: Windows 11 Version 22H2(OS build 22621.1992)
Browser: Edge browser version 115.0.1902
Screen Reader: Narrator.
Repro Steps:
Actual Result:
Incorrect role defined as "link" for the "Metric type filter column setting" button.
Expected Result:
Correct role defined as "link" for the "Metric type filter column setting" button.
Bug report
When tabbing through the row filter inputs of a virtual Grid only headers are scrolling
Reproduction of the problem
Run this Dojo - https://dojo.telerik.com/IjuJoRAx/5
Expected/desired behavior
Headers and columns shall scroll when tabbing through the row filter inputs
Environment
Kendo UI version: [all]
jQuery version:[all]
Browser: [all ]
In Grid with classic columnMenu, both filter and columns popups appear if you move the mouse quickly over both.
Regression introduced with 2023.2.606
Video to reproduce: https://screenpal.com/watch/c0iI6fVgJjm
Both Filter and Columns popup appear together
Only one of the popups should be visible at a time
Clicking on a custom icon-button command in the Grid fires a change event.
This is a regression introduced with v 2023.2.606
custom command
button - only the click handler is executedOnly the click handler should be executed on click of an icon button representing a custom command.
The Grid column header texts collides with the columnMenu icons.
Regression introduced with 2023.1.314
The column header text overlaps with the menu icon
the header text shouldn't collide with the menu icon
Hi Team,
I would like to request the ability to change the filter of a Kendo UI Grid column when the user chooses a new operator. Please take a look at this forum post for reference.
Thank you!
In an in-cell edit mode, if you edit a Grid cell with enter key, the Grid will scroll to the top.
Regression introduced with v2020.3.1021
The Grid scrolls to the top
The Grid shouldn't scroll to the top.
The Grid's pdf.repeatHeaders option does not display the column headers for each new page when exporting the Grid to PDF
Regression introduced with 2023.1.314
The column headers are displayed only on the first PDF page
The column headers should be present for each PDF page
When filtering is enabled in the Grid, the autoFitColumns method does not work.
The filterable Grid's columns are not auto-fitted
The filterable Grid's columns should be auto-fitted
Hi Team,
I would like to request a way to add a button into the Kendo UI Grid's pager using the built-in API. Maybe adding a Pager Template might help.
Thank you!
Hi
again this request is not urgent as I implemented this myself.
I'd like to have 'nextRecord' 'previousRecord' functionality in the grid widget.
We have a next/previous record button on our forms and as floating buttons to navigate the records.
As soon as we navigate to the next/previous record, the form loads the data of the concerning record.
My current implementation is as follows:
/** * * Grid with navigation code included * * selectRowByIndex: 0 based row selection by index of currently shown rows * * @author Alex Bernhard <alex.bernhard@uzh.ch> * @version 1.2.0 */ (function ($) { var kendo = window.kendo, ui = kendo.ui, Grid = ui.Grid, self = this; var NavigatableGrid = Grid.extend({ init: function (element, options) { // assign that to this var self = this; this.selectedIndex = 0; this.updateAfterLoad = false; // call the base function to create the widget Grid.fn.init.call(this, element, options); if (typeof options['updateMethod'] == 'function') { this.updateMethod = options['updateMethod']; } self.bindEvents(); }, options: { name: "NavigatableGrid", }, bindEvents: function () { this.bind("change", function () { this.setSelectedIndex(); }); this.bind("dataBound", function () { this.selectRowByIndex(this.selectedIndex); // after selecting the next row, shall update be called here? // happens only when navigating to a new page // or after search results are present if (this.updateAfterLoad) { this.updateAfterLoad = false; let selectedItem = this.dataItem(this.select()); if(selectedItem != null && selectedItem.hasOwnProperty('id')){ this.updateMethod(selectedItem.id); } } return false; }); }, updateMethod: function () { }, setSelectedIndex: function () { let dataRows = this.items(); this.selectedIndex = dataRows.index(this.select()); return this.selectedIndex; }, selectRowByIndex: function (index) { // zero based index this.clearSelection(); this.select('tr:eq(' + index + ')'); }, selectRowById: function (id) { this.clearSelection(); let view = this.dataSource.view(); let _self = this; let rows = $.grep(view, function (item) { return item.id == id; }).map(function (item) { return _self.tbody.find("[data-uid=" + item.uid + "]"); }); if (Array.isArray(rows) && typeof rows[0] !== 'undefined') { this.select(rows[0]); } }, previousRow: function () { // get current number of rows let pageSize = this.dataSource.pageSize(); let currentPage = this.dataSource.page(); // already first row of current page ? if (this.selectedIndex == 0) { let previousPage = currentPage - 1; // not the first page yet - load the previous page and read the data // after load if (previousPage > 0) { this.selectedIndex = pageSize - 1; // last row of previous page this.updateAfterLoad = true; this.dataSource.page(previousPage); } } else { // set next row index (0 based !!) this.selectedIndex = Math.max(this.selectedIndex - 1, 0); this.selectRowByIndex(this.selectedIndex); this.updateAfterLoad = false; let selectedItem = this.dataItem(this.select()); if(selectedItem != null && selectedItem.hasOwnProperty('id')){ this.updateMethod(selectedItem.id); } } }, nextRow: function () { // get current number of rows let numRows = this.items().length; let pageSize = this.dataSource.pageSize(); let numPages = this.dataSource.totalPages(); let currentPage = this.dataSource.page(); // already last row of current page ? if (this.selectedIndex == numRows -1) { let nextPage = currentPage + 1; // not the last page yet - load the next page and read the data // after load if (nextPage <= numPages) { this.dataSource.page(nextPage); this.selectedIndex = 0; this.updateAfterLoad = true; } } else { // set next row index (zero based !!) this.selectedIndex = Math.min(this.selectedIndex + 1, pageSize-1); this.selectRowByIndex(this.selectedIndex); let selectedItem = this.dataItem(this.select()); if(selectedItem != null && selectedItem.hasOwnProperty('id')){ this.updateMethod(selectedItem.id); } } } }); kendo.ui.plugin(NavigatableGrid); })(jQuery);
And an example usage is like:
accessionGrid = $("#accession-grid").kendoNavigatableGrid({ .... standard code for kendo grid // call method in form when navigating updateMethod: function(data){accessionForm.update(data)}, ..... }); // code for grid navigation function nextAccessionGridRow(){ accessionGrid.nextRow(); } function previousAccessionGridRow(){ accessionGrid.previousRow(); }
Allow using kendo templates in columns.attributes for example
<div id="grid"></div>
<script>
$("#grid").kendoGrid({
columns: [ {
field: "name",
title: "Name",
attributes: {
"data-id": "#:data.id#",
"data-clientid": "#:data.clientId#",
}
} ],
dataSource: [ { id:1, name: "Jane Doe", clientId:"#223" }, { id:2, name: "John Doe", clientId:"#354" }]
});
</script>
Hi Team,
I would like to request a better way to be able to refresh the filters when the Kendo UI Grid refreshes. I will elaborate more in an additional comment.
Thanks!
The Kendo-UI Grid supports the concept of locked columns that are always on the left side of the screen (in a non-RTL-world) and do not scroll. This makes it necessary to split the underlying HTML-table into two parts (one is locked and one is not). Kendo-UI takes care of syncing the height of the rows between those two tables.
However, if there are empty cells in the locked part, this logic produces results that make the row grow larger (higher) than if there was content. This DOJO demonstrates the behaviour. Using the Browser's DEV-Tools, you can see that rows without content in column A are 37px high, while those with content are only 36px high.