Declined
Last Updated: 09 Jan 2020 15:34 by ADMIN
Created by: Leah
Comments: 1
Category: Grid
Type: Feature Request
1

I would like to request additional keyboard navigation functionality with the grid.  We are using the grid as a sort of spreadsheet, for teachers to enter grades.  Teachers want to move down the column in the grid by pressing the enter key after typing each grade, in order to move their focus to the field below.  After pressing enter, the field below should be focused and editable.  When pressing enter at the bottom of the column, focus should be brought to the top of the next column.  Using shift+enter would move the focus up a row, and if at the top of a column, would bring focus to the bottom of the column to the left.

This behavior differs from the current grid keyboard navigation, I believe, in that we need the navigation to be present and the fields within each cell to be editable at the same time.  The teacher will not want to switch between navigating and editing, they want to quickly enter their scores going down the column, like a spreadsheet.

We have tried to implement this ourselves and have been mostly successful, but the area where we are having issues beyond our control is when using virtual scrolling.  As the grid swaps out its rows for the next set of data, the user's focus is moved to a different cell where we do not wish to have the focus at that point.  We have attempted to immediately move the focus back to the cell it should be in, but the user can type faster than we are able to regain control of the focus and we wind up with grades in cells where they shouldn't be.  We have tried using the pageChange event, but that occurs after the page has already changed and the focus has already been moved somewhere we don't want it.  If you have any suggestions for dealing with this in the meantime that would be most helpful.

Thank you!

Declined
Last Updated: 28 Feb 2020 14:12 by ADMIN
Created by: Peter
Comments: 1
Category: Grid
Type: Feature Request
1

Issue: unable to filter data by itself written filter handlers.

Current implementation:

/**
 * A complex filter expression. For more information, refer to the [`filterBy`]({% slug api_kendo-data-query_filterby %}) method.
 */
export interface CompositeFilterDescriptor {
    /**
     * The logical operation to use when the `filter.filters` option is set.
     *
     * The supported values are:
     * * `"and"`
     * * `"or"`
     */
    logic: 'or' | 'and';
    /**
     * The nested filter expressions—either [`FilterDescriptor`]({% slug api_kendo-data-query_filterdescriptor %}), or [`CompositeFilterDescriptor`]({% slug api_kendo-data-query_compositefilterdescriptor %}). Supports the same options as `filter`. You can nest filters indefinitely.
     */
    filters: Array<FilterDescriptor | CompositeFilterDescriptor>;
}


Where filter descriptor has next available fields:


export interface FilterDescriptor {
    /**
     * The data item field to which the filter operator is applied.
     */
    field?: string | Function;
    /**
     * The filter operator (comparison).
     *
     * The supported operators are:
     * * `"eq"` (equal to)
     * * `"neq"` (not equal to)
     * * `"isnull"` (is equal to null)
     * * `"isnotnull"` (is not equal to null)
     * * `"lt"` (less than)
     * * `"lte"` (less than or equal to)
     * * `"gt"` (greater than)
     * * `"gte"` (greater than or equal to)
     *
     * The following operators are supported for string fields only:
     * * `"startswith"`
     * * `"endswith"`
     * * `"contains"`
     * * `"doesnotcontain"`
     * * `"isempty"`
     * * `"isnotempty"`
     */
    operator: string | Function;
    /**
     * The value to which the field is compared. Has to be of the same type as the field.
     */
    value?: any;
    /**
     * Determines if the string comparison is case-insensitive.
     */
    ignoreCase?: boolean;
}


In case when we need to filter in array of array items, and Kendo grid does not allow us this functionality out of the box, please provide at least availability to make it by ourselfs. 

My suggestion structure is

export interface FilterDescriptor {
    /**
     * The data item field to which the filter operator is applied.
     */
    field?: string | Function;
    /**
     * The filter operator (comparison).
     *
     * The supported operators are:
     * * `"eq"` (equal to)
     * * `"neq"` (not equal to)
     * * `"isnull"` (is equal to null)
     * * `"isnotnull"` (is not equal to null)
     * * `"lt"` (less than)
     * * `"lte"` (less than or equal to)
     * * `"gt"` (greater than)
     * * `"gte"` (greater than or equal to)
     *
     * The following operators are supported for string fields only:
     * * `"startswith"`
     * * `"endswith"`
     * * `"contains"`
     * * `"doesnotcontain"`
     * * `"isempty"`
     * * `"isnotempty"`
     */
    operator: string | Function;
    /**
     * The value to which the field is compared. Has to be of the same type as the field.
     */
    value?: any;
    /**
     * Determines if the string comparison is case-insensitive.
     */
    ignoreCase?: boolean;

     /** --------------- ADDITIONAL DATA --------------- */
 
     /**
     * Manages filtering operations with data for single row
     */
    handler?: (dataItem: T) :  Observable<boolean> | boolean;
    /**
     * Filter name to display on grid
     */
    name?: Observable<string> | string;
}

Where handler is providing to us availability to filter by ourselfs data in which way.

Thank you.
Best regardings,
Peter Busliuk. 

Tradeix.com, Lohika Inc.
Declined
Last Updated: 11 Jul 2023 15:03 by ADMIN

Can you add "extra" field to FilterableSettings to allow the user to set extra globally for all columns in a grid? 

https://www.telerik.com/kendo-angular-ui/components/grid/api/FilterableSettings/

Currently, if I want to set extra to false for a column, I need to do something like this: 

<kendo-grid-column field="ProductName" title="Product Name">
   <ng-template kendoGridFilterMenuTemplate let-filter let-column="column" let-filterService="filterService">
     <kendo-grid-string-filter-menu [extra]="false" [column]="column" [filter]="filter" [filterService]="filterService">
     </kendo-grid-string-filter-menu>
   </ng-template>
</kendo-grid-column>

But it would be simpler if we can do filterable:{extra:false} just like Kendo UI for jQuery. https://docs.telerik.com/kendo-ui/api/javascript/ui/grid/configuration/filterable.extra

Declined
Last Updated: 11 Jul 2023 15:02 by ADMIN
Created by: Brittany
Comments: 1
Category: Grid
Type: Feature Request
1
Please provide a built-in date range option for the filter input property of the Column component.
Declined
Last Updated: 11 Jul 2023 15:01 by ADMIN
Created by: John
Comments: 7
Category: Grid
Type: Feature Request
1

Hello,

   You have this jQuery example: Binding to Kinvey Backend Services.  Do you have a similar example for Angular?  I cannot find one.  

Thank you.

Declined
Last Updated: 11 Jul 2023 15:07 by ADMIN
Created by: Troy Web Consulting
Comments: 2
Category: Grid
Type: Feature Request
1

Hello Telerik,

We have implemented a custom reusable filter cell component similar to the example of the multi-select checkbox example from the docs. The difficulty using that example however, is that when the filter is updated, the other filters in the grid are removed due to the use of filterservice.filter. Because the CompositeFilterDescriptor can contain both filters and composite filters, why does the base filter cell component's base methods not allow a CompositeFilterDescriptor to be provided to the UpdateFilter method? 

    protected filterByField(field: string): FilterDescriptor;
    protected filtersByField(field: string): FilterDescriptor[];
    protected removeFilter(field: string): CompositeFilterDescriptor;
    protected updateFilter(filter: FilterDescriptor): CompositeFilterDescriptor;
    protected applyFilter(filter: CompositeFilterDescriptor): void;

Our method for implementing the multi-checkbox filter cell was to build a composite filter using 'Or' logic and each selected value added as a filter descriptor with operator 'eq' and the selected item value as the value of the filter, and use a similar strategy as the base filter cell component to add this composite filter to the filter service's composite filter. 

  private getSelectedFilters(values: Item[]): CompositeFilterDescriptor {
    const selected: FilterDescriptor[] = values.map((value) => {
      return {
        field: this.field,
        operator: 'eq',
        value: value.value,
      };
    });
    return {
      filters: selected,
      logic: 'or',
    };
  }

  public onChange(values: Item[]): void {
    this.selectedValues = values;
    const root = this.filter || {
      filters: [],
      logic: 'and',
    };
    this.removeFilter(this.field);

    if (values !== null && values.length !== 0) {
      root.filters.push(this.getSelectedFilters(values));
    }
    this.filterService.filter(root);
  }

If the base filter cell component allowed the CompositeFilterDescriptor type or the FilterDescriptor type in the updateFilters method, we could simplify the logic in our filter cell component to be similar to the patterns shown in the drop-down list filter component example, as shown below, but with a composite filter descriptor such as the one generated by the above getSelectedFilters function.

this.applyFilter(
      value === null // if value of the default item
        ? this.removeFilter(this.valueField) // remove the filter
        : this.updateFilter({
            // otherwise add/modify the filter for the field with the value
            field: this.valueField,
            operator: 'eq',
            value,
          })
    ); // and update the root filter

I think this would be a beneficial addition to the Kendo Angular2 product, as it would enable many more reusable filter components to be created more easily and also simplify/ enhance some of the existing examples you provide.  If you would like more information or the full multiselect-filter component, I would be happy to supply it.

 

Thank you!

Duplicated
Last Updated: 02 Jul 2020 10:10 by ADMIN
Created by: Khushbu
Comments: 1
Category: Grid
Type: Feature Request
1
Regarding kendo grid column locked feature, currently only columns from left can be locked. Can't we have any such feature which allows us to block right most columns?

When there are multiple columns in grid, horizontal scroll is added. In such scenario, action column which is generally the right most column is not visible. To access it user has to scroll till right most column. It would be of great use in such scenario
Declined
Last Updated: 14 Jul 2023 09:54 by ADMIN
Created by: Ed
Comments: 1
Category: Grid
Type: Feature Request
1

Please provide an [autoSync] option of the ColumnMenuChooser component as the [autoSync] option for the ColumnChooser component:

https://www.telerik.com/kendo-angular-ui/components/grid/api/ColumnChooserComponent/#toc-autosync

Thank you.

Declined
Last Updated: 14 Jul 2023 09:57 by ADMIN
Created by: Jesse
Comments: 1
Category: Grid
Type: Feature Request
1

Please provide a frozen column separator as the one for the WPF DataGrid:

https://docs.telerik.com/devtools/wpf/controls/radgridview/columns/frozen-columns

thank you

Declined
Last Updated: 09 Jun 2021 15:39 by ADMIN
Created by: Anil
Comments: 2
Category: Grid
Type: Feature Request
1
As of now we have options of sorting the grouped column either in ascending or descending order. Can we have asc, desc and no sort the same way we have for the grid columns?
Declined
Last Updated: 18 Jul 2023 15:34 by ADMIN
Created by: Arun
Comments: 4
Category: Grid
Type: Feature Request
1

Hi Team,

We need to add caption on grid table as explained here: https://accessibility.psu.edu/tableshtml/#caption

JAWS should read this caption on pressing T while selecting the table.

 

Can you guide us how can we add this caption!

 

Thanks,

 

Saini

Declined
Last Updated: 18 Jul 2023 15:32 by ADMIN
Created by: Tomer
Comments: 1
Category: Grid
Type: Feature Request
1

I have a Grid with a command column for edit/remove buttons.

I also have a custom button that has to be hidden while the row is being edited, but there is no variable that exposes that state.

Please provide isEdited field in the kendoGridCellTemplate context.

Declined
Last Updated: 18 Jul 2023 15:32 by ADMIN

I had already made an entry in the Foum about it.

https://www.telerik.com/forums/is-there-a-way-for-percentage-column-widths

Link to the demo with the css workaround:

https://stackblitz.com/edit/angular-y8y55s

The main intention is that I want to be able to specify the column width in percentage values rather than fixed pixel values.

There are some edge cases that must be considered:

  1. If columns are rearranged, the column width is taken to the new position.
  2. If the table is grouped, the columns in the group remain aligned below the column headers.
  3. If a column is manually resized, the behavior changes, the table is allowed to grow beyond 100% and gets a scrollbar.

 

Completed
Last Updated: 31 Aug 2023 15:04 by ADMIN
Created by: Chris
Comments: 3
Category: Grid
Type: Bug Report
1

When resizing grid columns so the last column does not reach the right border of the grid (sum of columns width < current grid width), loading stored state (or changing column width property in any way) does not restore the columns width proportionaly to use the full width of the grid.

Note: in this case, the default columns width sum and stored state columns width sum are always inferior to the grid width in order to use proportionality and adapt to every screen size.

 

In our implementation, we made a "Reset columns view" (working exactly as the loading store data), but if the user play arround with the columns as described above), the reset is broken.

 

Reproduce steps:

Using the persisting state exemple available in the doc: https://stackblitz.com/edit/angular-3jdmzy?file=app%2Fapp.component.ts

- Click "Save current state"

- Resize grid columns so the last column does not reach the right border of the grid

- Click "Load saved state", the columns are resized proportionaly of the saved state but on the base of previous columns width sum instead of the full grid width.

Completed
Last Updated: 24 Jun 2021 06:13 by ADMIN
Created by: Kendo UI
Comments: 0
Category: Grid
Type: Bug Report
1

When a Grid cell is focused, and after this, the data is filtered so that the data contains fewer items than the index of the row the last focused cell was in, the Grid table area does not receive focus when tabbed into.

 

Please check the example:

 

https://stackblitz.com/edit/angular-xqswy5-zqeqkb?file=app/app.component.ts

 

Duplicated
Last Updated: 29 Oct 2021 14:56 by ADMIN
Created by: Dimitris
Comments: 1
Category: Grid
Type: Feature Request
1

Hi

we have a lot of clients requesting two features for the KendoGrids:

1st) A second horizontal scrollbar on top of the grid, scrolling smoothly in parallel with the bottom one.

2nd) Sticky / fixed headers to be able to always see the header row. Somethine like this: https://www.telerik.com/kendo-angular-ui/components/grid/columns/sticky/ but for the top labels row.

Completed
Last Updated: 28 Nov 2024 07:56 by ADMIN
Created by: Johann
Comments: 1
Category: Grid
Type: Feature Request
1

Could we have a turnkey solution which allows to disable a row selection which takes care of disabling only the relevant selection checkboxes and handle properly the "Select all" checkbox state (in header).

With CheckboxColumnComponent field which allows providing dataItem field name or predicate function.

<kendo-grid-checkbox-column showSelectAll="true" disableSelection="isDisabled">
</kendo-grid-checkbox-column>

<kendo-grid-checkbox-column showSelectAll="true" [disableSelection]="isDisabledPredicateFunction">
</kendo-grid-checkbox-column>

OR

If you don't want to add more selection concerns into CheckboxColumnComponent this field could be specified in your SelectableSettings as well:

public selectableSettngs: SelectableSettings = {
    enabled: true,
    checkboxOnly: false,
    mode: 'multiple',
    cell: false,
    drag: false,
    rowEnabled: mySelectableRowPredicateFunction
}

rowEnabled field could something like this:

export declare type RowEnabledSelectionFn = (context: RowArgs) => boolean | boolean;

export interface SelectableSettings {
    //...
    /**
     * Determines if row selection is allowed.
     *
     * @default true
     */
    rowEnabled?: RowEnabledSelectionFn;
}

Thank you

Declined
Last Updated: 31 Mar 2025 13:22 by ADMIN
Created by: Kendo UI
Comments: 1
Category: Grid
Type: Feature Request
1

Overcoming the last listed limitation would be nice:

https://www.telerik.com/kendo-angular-ui-develop/components/grid/columns/locked/#toc-known-limitations

 

The Spreadsheet (Google Docs, etc.) addresses this situation by duplicating the cell content on both sides and clipping the right cell accordingly.

A similar approach can be used and providing a setting that disables word-wrapping and duplicates the content.
Unplanned
Last Updated: 25 Nov 2021 08:24 by ADMIN
Created by: Kendo UI
Comments: 0
Category: Grid
Type: Feature Request
1

Current behavior

The developer must measure the Grid row height in the browser and set it to the `rowHeight` in order for virtual scrolling to work correctly. Setting an incorrect value can lead to subtle errors - glitches during scrolling or inability to scroll down to the last row.

The row height may change as a result of a styling adjustments and is not guaranteed to be identical across browsers and devices. This makes the current workflow tedious and error-prone.

One of the following approaches can be used to solve this issue:

  • The Grid should take accurate measurements of the row height at run-time. The developer should still be aware that row height is constant . This is the preferred approach as it does not change current behavior, instead the set `rowHeight` value is ignored.
  • The set `rowHeight` should be applied as inline styles. This is a more risky approach as it will change the appearance of the Grid.
Unplanned
Last Updated: 30 Nov 2021 12:07 by ADMIN
Currently, the Grid always uses tab index 0 for the focusable element(s). Introducing a "tabindex" option would allow setting a custom tabindex on both the Grid element and all internal focusable elements so that the Grid can be a part of customized tab order on the page.