Kendo uses the field name with a colon followed by the group's value, for example with field 'type' I get 'type: Document', 'type: Event', etc. I would like the ability to remove the 'type: ' part, or rename it, perhaps via a GroupDescriptor property, i.e. 'fieldDisplayText'.
Need to have Parent --> Child hierarchical records to be displayed in Grid.. It should support up to 'n' level , it means a parent can have any number of child records. can this be done using current Master Detail grids?. Parent 1 --- Child 1 -- Grand Child 1 -- Grand Child 1 -- Grand Child 2 Thanks in advance.
Export to pdf...long strings..arrays to multiple page headers ..top can't be static..
Specifies a date/time grouping option, which determines time periods to be used as grouping values in group for Date column value.. Ex : By Date => The time portion of the values is ignored. By Month, By Year Relative to today etc
It's possible to assign class/styles to column groups, column heads, and cells, but not to the filter cells.
An ordinary kendo-grid-column HTML tag can be styled like so: <kendo-grid-column title="Session" [headerStyle]="{'background-color': '#6a99c1','color': '#fff'}"> ... for example. But when I use the directive kendoGridDetailTemplate the left-most genereated header-column can not be styled as far as I have seen. It should be possible to somehow style this header-column also.
how to debouce time on use GroupBindingDirective ?
for excelExport, there's only autoWidth option for all columns, not for some specific cells. Say I want to have a long description at the top of excel, but I don't want it to have autoWidth because it will make other cells in the same column have long trailing spaces. So we need a way to override the global autoWidth column setting.
I would like to see more responsiveness in the grid. I believe what i understand to be known as stacking could be achieved by additions to the media operator on columns. Thus we could have media=".col-sm-12 col-md-6 col-lg-4 col-xl-3". The underlying code could then use media queries and where the column will not fit on the device without the ugly scroll bar it would wrap the columns in a kendo-grid-span-column directive giving a card-like effect on smaller devices. Of course this may need some columns to be hidden on smaller devices so we could also use the [hidden] directive like so: [hidden]="sm". The next thing you would have to think about would be what to do with column headers when a row is stacked and, again, we could use the [hidden]="sm".
when expanding a group, inside the expand event (function) we do have access to the groupIndex. but groupIndex is not available inside the groupHeader(Footer)Template itself. we need that groupIndex, so we can get the parent items (groups) to the group that is expanded.
Now I can configure possible filter operators and default operator on column basis. Doing so I have much copy-pasted code for each grid column.
I want to have a grid level option to configure this on "type" basis with a reusable js object (e.g. public constant shared across components):
<kendo-grid [filterOptions]="GridFilterOptions" ...
Where GridFilterOptions:
public const GridFilterOptions: ... = [
{ type: "string", default: "contains", operators: ["contains", "doesnotcontain"]},
{ type: "number", default: "eq", operators: ["eq", "neq"]}
];
Add icons for grid filter operators to easily understand current operator (DevExpress example):
Hi Dimiter,
I have experience creating column groups at the top of a kendo grid, but I would now like to do something similar with row groups. I have attached a screenshot of an example of what I would like to accomplish. Is this possible with Kendo Grid?
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!
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;
}
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;
}
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