Ability to set accesskey on toolbar actions without having to do a template.
The command button set should be configurable on a per row basis. This can be accomplished by accepting a lambda function for the column.command configuration attribute. Presently only a string or array is accepted
in a grid configured to groupable = false using a datasource that is grouped will allow selecting a grouping row, it does not show in the ui, but the select() method will return the grouping row.
demo:
http://dojo.telerik.com/aDevo
code:
<!-- shows problem with select() in grid where dataSource is grouped and groupable is disabled -->
<!-- in the demo it is possible to select the grouping row which is not shown but select() returns the grouping row as selected, the problem is even worse if using multiselect with ctrl and clicking on the grouping row -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Kendo UI Snippet</title>
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.1.412/styles/kendo.common.min.css"/>
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.1.412/styles/kendo.rtl.min.css"/>
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.1.412/styles/kendo.silver.min.css"/>
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.1.412/styles/kendo.mobile.all.min.css"/>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://kendo.cdn.telerik.com/2016.1.412/js/kendo.all.min.js"></script>
</head>
<body>
<div id="grid"></div>
<script>
var dataSource = new kendo.data.DataSource({
data: [
{ productName: "Tea", category: "Beverages" },
{ productName: "Coffee", category: "Beverages" },
{ productName: "Ham", category: "Food" },
{ productName: "Bread", category: "Food" }
],
group: { field: "productName" }
});
$("#grid").kendoGrid({
selectable: "multiple, row",
allowCopy: true,
groupable: false,
columns: [
{ field: "productName" },
{ field: "category" }
],
change: function (e) {
console.log("number of selected items: " + e.sender.select().length );
},
dataSource: dataSource,
});
</script>
</body>
</html>
Please implement multi-row drag-and-drop in the Grid widget.
Highlight a row during mouse over has to be done through CSS. However it doesn't work properly when there is a locked column, as there are two separate tables. This requires some programming. I suggest you embed it in Kendo, so we could easily use this feature without having to implement it ourselves.
Pressing <Enter> should save grid row edited in-line by default, even if it has a sub-grid. Currently, if a grid row does not have a sub-grid, pressing <Enter> saves it when edited in-line, but if it has a sub-grid, that sub-grid gets expanded instead. I think, this is a non-standard behaviour (can be set by specifying some new option, but not by default). If my suggestion will be implemented, it will allow to speed up data entry, because if user types in some text in a text box, it is easier and faster for him to press <Enter> rather that switch to the use of mouse. Also, pressing <Esc> cancels editing in any case (with sub-grid or without), which is correct.
Feature Request: Provide Conditional Filtering as in Silverlight telerik Rad Grid along with checkboxes Iam in the process of migrating a project from silverlight containing telerik RAD Grid to Kendo UI containing the same Grid. Unfortunately, i see that the default filtering option provided in kendo Grid is different than in silverlight, where the default conditonal filtering is missing in the HTML based solution. I could see only the checkbox selections It would be a great to have feature with the telerik products being exhibiting the same functionality
Currently, when the Grid widget is empty, as it is initially, the progress indicator is hidden because the its element, with class .k-grid-content, has zero height. Just move the indicator to .k-grid-content.filter(":parent") or the equivalent so that everyone won't have to kludge it with a min-height class override for .k-grid-content.
Kendo UI Grid - In batch update mode, currently, during save operation three separate events are fired for created, updated and deleted records. This really creates a problem when all the changes needs to be transactions. There needs to be an option, in which only one event is fired for all the changes.
In addition to columns.minScreenWidth, the grid also needs columns.maxScreenWidth for the situation described here: "http://www.telerik.com/forums/need-columns-maxscreenwidth-too!"
I would like to see the ability to have more than one template for edit AND update on grid pop ups. Currently I can set the template file for the editable option but that is also used for the create when doing a pop up modal.
If an Ajax validation (sync or async) is called by a custom validation, kendo grid navigation should move to next or previous cell by pressing once tab or shift + tab key, if it's valid -as normally- or cancel edit if it is not. +info in this thread: http://www.telerik.com/forums/ajax-validation-with-grid
In your article: http://www.telerik.com/forums/how-to-make-a-non-editable-column-field, many developers make the point that the read-only attribute of a column should be part of the view, not model/data. By not providing a column property to prevent editing, you have put the view logic in the wrong place. Solution: Create a read-only property to each column to prevent editing.
Hi All,
We are facing a weird issue in kendo grid when both group paging and virtual scrolling are enabled for local data. Please see https://dojo.telerik.com/ICoDAleN/2 as example.
Steps to reproduce:
1. Run the code from https://dojo.telerik.com/ICoDAleN/2.
2. Try to group "DateTime" column by drag and drop to grouping header
3. After "DateTime" column is grouped, then un-group it by click cross icon of DateTime button.
4. Now you try to scroll down the grid, until ID column reach around 40, you will see the ID will jump back to around 0, and you will never see the rows which IDs are greater than 40.
5. If you open Developer Tools of browser, you will see following errors.
Uncaught ReferenceError: DateTimeDisplayValue is not defined
6. If you group other columns, for example, group "Subject" column, and then un-group it, then scroll down the grid, you will not see this issue.
How to fix it? is there any workaround?
Thanks,
David
This currently causes the locked columns to not line up with the rest of the grid. See http://dojo.telerik.com/eZasA/2 and http://www.telerik.com/forums/column-locking-row-heights-not-matching#KsWBJy4lGkafpkwZxUYRVw
Add support for flexible width to columns on a "weight" basis (like XAML grid).
Ps. I'm writting the example in MVC wrappers because I'm not familiar with the javascript initialization but I am posting this in Kendo UI Web category because it's a core feature and assume it would be implemented accordingly in every wrappers without having to specify them.
@(Html.Kendo()
.Grid<Employee>()
.Name("EmployeesGrid")
.Columns(cols =>
{
cols.Bound(o => o.FirstName).Width("*");
cols.Bound(o => o.LastName).Width("2*");
cols.Bound(o => o.Initials).Width("Auto");
cols.Bound(o => o.JobTitle).Width("200"); // Or 200px
}))
-Assuming the grid is 900 pixel wide and the longest Initials (including header?) is 100 pixel
-Ignoring the lost horizontal space in padding, margin, borders, scrollbars and anything else
This example would give the following result:
FirstName column: 200px
LastName column: 400px
Initials column: 100px
JobTitle column: 200px
When adding Multi-Level Hierarchical Grid no option to make single select mode for the whole grid so that when i click a row on the master grid and another in the details grid and one other again in the 3rd sub-details grid i have both 3 of the rows selected.
Kendo Grid should expose some method which are exposed by other controls...like selectable and disable...for k-selectable class. So that one can enable or disable grid on external button click.
You guys do such a great job of allowing us to extend your product for our needs. And I know that you have recently added the Search Panel to allow us to perform a search against the dataSource. However, I would like to put that search box/button somewhere else completely on my page.
I've been able to get around this by using the code in kendo.grid.js to use my own click/keypress events to invoke the filter based on the new search options.
configureSearch takes two jQuery selector strings to hook into click/keypress events. I only want to search when the user hits ENTER instead of after each keypress. Then it executes the private search function.configureSearch(inputSelector: string, clickSelector: string) {
const searchFn = this.search;
if (this.grid.options.search == null) {
throw "search field(s) not set for grid.";
}
const inputElement = $(inputSelector).keypress(function (this: HTMLElement, e) {
const keycode = (e.keyCode ? e.keyCode : e.which);
if (keycode === 13) {
searchFn($(this));
}
});
$(clickSelector).click(e => {
searchFn(inputElement);
});
}
private search(inputElement: JQuery<HTMLElement>) {
const options = this.grid.options;
const dsOptions = this.dataSource.options as kendo.ui.GridScrollable; // HACK: dataSource.options isn't really a GridScrollable, but it's similar
let searchFields: string[] | any = options.search ? options.search.fields : null;
let expression: kendo.data.DataSourceFilters = {
filters: [],
logic: "or"
};
const value = inputElement.val();
if (!searchFields) {
searchFields = getColumnsFields(options.columns);
}
// NOTE: Thankfully we don't use endless
if (dsOptions.endless) {
dsOptions.endless = null;
//(this as any)._endlessPageSize = this.dataSource.options.pageSize;
}
if (value) {
for (let i = 0; i < searchFields.length; i++) {
expression.filters.push({
field: searchFields[i],
operator: "contains",
value: value
});
}
} else {
expression = {};
}
this.dataSource.filter(expression);
// from Telerik:
function leafColumns(columns: kendo.ui.GridColumn[]): kendo.ui.GridColumn[] {
/* Hiding ... go see Telerik source code */
}
function getColumnsFields(columns: kendo.ui.GridColumn[]): string[] {
/* Hiding ... go see Telerik source code */
}
}Allow inserting a row in a grid when the filter is applied and show the newly inserted row (even if it does not match the filter criteria) until the filter is re-applied by the user. This behavior is consistent with Microsoft Excel. Can the kendo grid be modified to support this behavior?