Completed
Last Updated: 25 Jul 2023 10:51 by ADMIN
Release R3.2023-Increment.2(30.Aug.2023)
Created by: Matt
Comments: 0
Category: Grid
Type: Bug Report
3

Bug report

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

Reproduction of the problem

  1. Open the Grid Export to PDF demo - https://demos.telerik.com/kendo-ui/grid/pdf-export
  2. Export the Grid

Current behavior

The column headers are displayed only on the first PDF page

Expected/desired behavior

The column headers should be present for each PDF page

Environment

  • Kendo UI version: 2023.2.606
  • Browser: [all]
Completed
Last Updated: 13 May 2024 12:58 by ADMIN
Release 2024 Q2 (May)

Bug report

When filtering is enabled in the Grid, the autoFitColumns method does not work.

Reproduction of the problem

  1. Open this Dojo example - https://dojo.telerik.com/AsaNeqOc
  2. Compare the column width of the two Grids

Current behavior

The filterable Grid's columns are not auto-fitted

Expected/desired behavior

The filterable Grid's columns should be auto-fitted

Environment

  • Kendo UI version: 2023.2.606
  • Browser: [all]
Completed
Last Updated: 06 Jul 2023 14:46 by ADMIN
Release R3.2023-Increment.1(19.July.2023)
Hi Guys

Testing the latest v2023.2.606 release I have hit a regression regarding filtering.

To demonstrate open the 'jQuery Grid Frozen Columns' demo

On the 'Order Id' column
    - Open the filter menu
    - Set the value to 10248
    - Hit the Filter button

The grid will be filtered but the Column & Filter menus remain open and the following JavaScript errors are generated

Firefox
    Uncaught TypeError: this.popup is undefined
        _closeForm https://kendo.cdn.telerik.com/2023.2.606/js/kendo.all.min.js:10
        _reset https://kendo.cdn.telerik.com/2023.2.606/js/kendo.all.min.js:10
        jQuery 2
            dispatch
            handle

Chrome
    Uncaught TypeError: Cannot read properties of undefined (reading 'close')
        at init._closeForm (kendo.all.js:325519:2)
        at init._submit (kendo.all.js:325519:2)
        at HTMLFormElement.dispatch (jquery.min.js:3:12445)
        at r.handle (jquery.min.js:3:9174)

Note: Not all of your demos exhibit the issue (but 100% of my grids do) so they must be something special regarding the options enable for particular grids.

Hopefully you can find and fix this bug quickly because upgrading to v2023.2.606 is not a viable option here.

Regards
Alan
Unplanned
Last Updated: 07 Jun 2023 20:00 by Mark
Created by: Mark
Comments: 0
Category: Grid
Type: Feature Request
1

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!

Unplanned
Last Updated: 14 Jun 2023 06:55 by ADMIN
Created by: Alex
Comments: 0
Category: Grid
Type: Feature Request
0

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();
}

Completed
Last Updated: 12 Jun 2023 15:32 by ADMIN
Created by: Support
Comments: 1
Category: Grid
Type: Feature Request
0

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>

Unplanned
Last Updated: 26 May 2023 19:19 by Mark
Created by: Mark
Comments: 1
Category: Grid
Type: Feature Request
2

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!

Completed
Last Updated: 12 Dec 2024 11:37 by ADMIN
Release 2025 Q1 (Feb)

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.

Unplanned
Last Updated: 24 Apr 2023 19:51 by Vinicius
Created by: Vinicius
Comments: 0
Category: Grid
Type: Feature Request
1

Hi Team,

I would like to ask to add the Kendo UI Toolbar's overflow functionality to the built-in Kendo UI Grid's buttons. 

Thank you!

Completed
Last Updated: 03 May 2023 09:15 by ADMIN
Release R2.2023-Increment.3(7.June.2023)

Bug report

When setting column attribute that contains "_" in the Grid, an error is thrown.

Reproduction of the problem

  1. Open this Dojo example - https://dojo.telerik.com/uPuDeTUk/4
  2. Open the browser console

Current behavior

An error is thrown due to the 'cause_error' attribute for the classification column

Expected/desired behavior

No errors should be thrown

Environment

  • Kendo UI version: 2023.1.314
  • Browser: [all]
Completed
Last Updated: 18 Aug 2023 15:38 by ADMIN
Release R2.2023-Increment.3(7.June.2023)

Hi Guys,

Have just tripped over another regression in the 2023.1.314 release whereby resizing of a locked column also effects the sizing of any prior columns.

Reproduction of the problem

    Open the Grid Frozen Column Demo
    Decrease the size of the 'Ship Name' column

Current behaviour

As the width of column header decreases you hit a point where the width of the related data cells stop decreasing but the width of the data cells in previous columns start to decrease causing column misalignment. See attached screenshot.

Expected behaviour

Only the selected column should resize and previous columns should remain fixed.

Regards
Alan

Unplanned
Last Updated: 11 Apr 2023 07:32 by ADMIN
Scheduled for 2023.2

Describe the bug

Text overlaps on selected non-altering rows upon scrolling in Grid with sticky columns with version 2023.1.314

To reproduce

Dojo: https://dojo.telerik.com/eXeMAZOM

Select a non-altering row

Scroll to the right

Affected package (please remove the unneeded items)

theme-default
theme-bootstrap
theme-material
theme-tasks
Affected suites (please remove the unneeded items)

Kendo UI for jQuery
Telerik UI for MVC
Telerik UI for Core
Affected browsers (please remove the unneeded items)

All
Build system information (please remove the unneeded items)

Not Applicable

Completed
Last Updated: 29 May 2023 16:15 by ADMIN

Bug report

The popup of the filter does not contains all items after selecting the timepicker.

Reproduction of the problem

  1. Open the Filter Demo
  2. Open the filter popup for the Birth Date.
  3. Click on the 'clock' icon to display time.

Current behavior

The filter popup is closed. After the filter is opened again it displays only times. The filter popup should be closed and opened again to be rendered as expected.

Expected/desired behavior

After selecting the TimePicker the filter popup should not close, should display times.

The issue is a regression starting with 2023 R1 SP1 (2023.1.314)

Environment

  • Kendo UI version: 2023.1.314
  • Browser: [all ]
Unplanned
Last Updated: 23 Mar 2023 17:04 by Pravat Kumar

Bug report

Navigatable Grid with hierarchy moves focus to the top parent row On click of horizontal scroll bar in child grid

Reproduction of the problem
Open the Dojo: https://dojo.telerik.com/OJAYoCak

 - Expand the first parent row or second parent row to render the child records.

 - Navigate the child rows downwards using vertical scroll and click the Horizontal scroll area of the inner grid (Red Rounded area).

 - Control Focus immediately shifts to the top row and the user can’t use horizontal scroll to view the columns in the child grid.

Also, if the user initially clicks on any cell in the School Name column focus is moved.


Environment
Kendo UI version: [all]
Browser: [all]

Unplanned
Last Updated: 13 Mar 2023 17:08 by Avinash
Created by: Avinash
Comments: 0
Category: Grid
Type: Feature Request
1

Hi Team,

I would like to ask for the functionality to highlight text in a cell as the user searches text for the Kendo UI Grid. 

Thank you!

Unplanned
Last Updated: 24 Mar 2023 10:33 by ADMIN
Created by: Mark
Comments: 2
Category: Grid
Type: Feature Request
1

Hi Team,

I would like to request the functionality to export from the server easily and to be able to chunk/unchunk data.  I will elaborate further.

Thanks!

Completed
Last Updated: 15 Jan 2025 14:43 by ADMIN

Bug report

Setting the columns.selectable to true does not override the selectable.mode when set to "single".

Reproduction of the problem

  1. Run this dojo
  2. Click on the header checkbox.

Current behavior

Only the checkbox in the first row is checked.

Expected/desired behavior

All the checkboxes on the page are checked

Environment

  • Kendo UI version: 2023.1.117
  • jQuery version: x.y
  • Browser: [all]
Unplanned
Last Updated: 02 Mar 2023 19:18 by Haritian
Created by: Haritian
Comments: 0
Category: Grid
Type: Feature Request
1

Hi Team,

I would like to request a way to configure the Kendo UI Grid to allow dragToSelect selection with batch editing functionality.  

Thank you!

Unplanned
Last Updated: 16 Feb 2023 14:11 by Mark
Created by: Mark
Comments: 0
Category: Grid
Type: Feature Request
1

Hi Team,

I would like to request a way to manipulate the autoFitColumns method to account for the header width as well.  This was the column won't shrink less than the column header text width.  Also, it would be nice for the sort icon's width to be included. 

Thank you!

Unplanned
Last Updated: 16 Feb 2023 10:46 by Peter
Created by: Peter
Comments: 0
Category: Grid
Type: Feature Request
1

I would like to implement a drag & copy support in the Grid. 

Users would drag a cell by the lower right corner over several other cells and the value in the cell would be copied to all the cells that the user dragged the mouse over. 

Same as the way it works in Excel.