please add navigate property to custom command that fill new page address with current row id to href of a tag to easily link to relation page
we are not able to show the whole data object in grid. The detail template helps in this situation. But while editing detail templates are not handy. When editmode is detail, user should expand the row to edit. To add new record we can show expanded row. It's more of the popup edit but looks good in the UI perspective
When multi-select and batch editing is enabled, it would be nice to have a built-in feature to edit those rows all at once. Something like a popup with an editor for each column selected. The basic idea: Requirements - Selection mode has to be multiple. Both row and cell should be fine. - Edit mode: Batch preferably for performance reason (but allow other?). Features - [Grid widget] New multiEdit() method. Accepts an optional rowIndexes[], rowGuids[] or cellGuids[] parameter. If parameter array > 1 or parameter is null and selection > 1, open edit popup for specified or selected cells accordingly. - [Toolbar] Built-in Edit button. Disabled if selection <= 1. - [Popup] A popup with an editor for each selected (or passed into argument) columns. The popup could potentially be template based but I don't know how this would work out with the editors not always available. I leave that up to you :) Instead of a popup, it could also be (or as an extra optional feature maybe?) a fixed row right under the header that appears when you try to edit multiple rows. Sorta like the filter row but for editing. Perhaps you could even give this feature it's own edit mode. That mode would display the fixed row permanently and would disable individual editing. Upon selection, that fixed row would take up the value of the selected row (or display "Multiple" when the values differ) and changing that value would set all the selected cells of the column to that value. PS. I saw the other multi-row editing suggestion. It was mainly about having mutliple rows opened for edit at once. I understand the technicalities behind why it's a bit of a mess to do. This is not what I'm asking for here. My suggestion involves having only a single editor per column
Grid should allow to place images in the header of each column instead of text on per column basis.
When navigating grid in Batch Edit mode using the keyboard, the delete button in the command column is triggered by pressing Enter twice. Once to toggle the cell editable and again to fire the button event. This behavior can be observed in the batch edit demo. It would be preferable to automatically toggle the button active upon entering the cell so the user only needs to click Enter once. This could either be new default behavior or an optional event
Currently the new select column and the "selectable" setting of the grid are mutually exclusive. This seems completly counter intutive. If you you have a select column and the "selectable" mode set to "multiple", then when you drag select or ctrl click on row the checkbox to be selected. Right now it's not.
Currently having a column format of "{0:#}" does not infect the filters format. E.g. 5 becomes to 5.00 on blur event in filter dialog. So we have to modify filters behaviour manually which is a pain. Currently we are using this function: function configureFilterFormatting($grid) { var kendoGrid = $grid.getKendoGrid(); kendoGrid.bind('filterMenuInit', function (event) { var column; $j.each(event.sender.columns, function (index, item) { if (item.field == event.field) { column = item; return; } }) if (!column) { throw new Error('Invalid column'); } if (column.format) { // Transform '{0:#}' in '#' var format = column.format.replace(/^{0:/, '').replace(/}$/, ''); event.container.find('[data-role=numerictextbox]').each(function () { var $numericTextbox = $j(this); $numericTextbox.getKendoNumericTextBox().setOptions({ format: format }) }); } }); }
The current built-in _tmpl: method of kendo.grid constructs a very nice automatic row template that is aware of alternation, hasDetails and all the columns.* configuration settings such as formats and attributes. Two new templateSettings could make the automatic template even more useful, especially for row-wise highlighting based on data conditions (aka traffic highlighting): templateSettings.autoGridTrClassHook : string - inject addtional classes or kendo template source into the class="..." attribute of the <TR> element in the automatic row template templateSettings.autoGridTrHook : string - inject addtional html source or kendo template source into the <TR> element of the automatic row template Example $('#grid').empty().kendoGrid({ dataSource: myRemoteDS, ... templateSettings: { autoGridTrClassHook: '# if (data.Recent==="Y") { # is-recent #}#' }, ... Some css .is-recent { font-style: italic; background: #FFFFCC; } .is-recent.k-alt { font-style: italic; background: #FFFF99; } .is-recent.k-state-selected { font-style: italic; background: #6600FF; }
The current implementation of Persist State http://demos.telerik.com/kendo-ui/grid/persist-state isn't meant to save the user state of the grid. Let me explain. Currently setOptions() override the options in the grid. That has a rather unfortunate side effect. The Column[{...}] options coming from the server is no longer used (ever) as all column options are now coming from the client. Effectively overriding all column options. Example: { ..., columns: [ { field: "Name", filterable: false } ] } This is saved using the current persist state. Later the backend now supports filtering of the "Name" field, and we change filterable to true. The user will not see this change. Because it's overridden with the column options stored on the client. It would be nice if this wasn't the case. Either make a new method get-/setUserOptions() or change the current get-/setOptions() (I cannot figure out the usecase for the current implementation as it to me always would be used for what I've described here - and do a poor job of it) However we also need to recognize that different options have different life cycles. For example would I want to save current page, sorting and filters in sessionStorage. While column order, size and pageSize (don't override, just set. As the range can change) would be saved in localStorage. So that need to be easy to do. The last thing we need is an event where it would make sense to call setUserOptions(). For the purpose of loading saved state without having to click a "Load state" button. The event needs to be before the datasource is quried. The current dataBinding event doesn't work as it would result in an infinite loop of datasource queries.
Add property that defines a delay before requesting new items when scrolling. This would prevent sending multiple request when dragging the scrollbar and passing more than one page.
When you configure a grid date-column with a custom format, the value configured in 'format' is parsed using JSON.parse. This requires the use of double quotes for both keys and values. var a = "{0:dd/MMMM/yyyy}"; // example from docs JSON.parse(a); // SyntaxError: JSON.parse: expected property name or '}' var b = '{"0":"dd-MM-yyyy"}'; JSON.parse(b); // jey! However, if you use the latter, the generated template goes fubar with the message: "Invalid template:' ... <td>${kendo.format("{"0":"dd-MM-yyyy"\}",theDataField)}</td> ... " This makes sense when you look at the quote mismatch..
In you web site we used the Html.Kendo().Grid Helper to build our code for the grid. When a user refresh the page we want to keep the context of the grid, meaning the same page size the same sort and the same page number. When we build the grind using Html.Kendo().Grid Helper the only option that we can not set is the Page number (the page that is being display). I see that using the javascript we can set the page <script> var dataSource = new kendo.data.DataSource({ data: [ { name: "Tea", category: "Beverages" }, { name: "Coffee", category: "Beverages" }, { name: "Ham", category: "Food" } ], // set the second page as the current page page: 2, pageSize: 2 }); dataSource.fetch(function(){ var view = dataSource.view(); console.log(view.length); // displays "1" console.log(view[0].name); // displays "Ham" }); </script> But why this option is not available using the MVC Helper .DataSource(dataSource => dataSource .Ajax().PageSize(24) .ServerOperation(true) // Paging, sorting, filtering and grouping will be done client-side .Read(read => read.Url("/results/gethomes")) This will be a nice feature to have. Thanks
It would be nice to have the possibility of using own template for the exported data, as some data may be obtained from own functions. Something like this: columns: [ { field: "ProductName", title: "Product Name", aggregates: ["count"], footerTemplate: "Total Count: #=count#", groupFooterTemplate: "Count: #=count#" }, { field: "UnitPrice", title: "Unit Price", template: '<div style="text-align: right; font-weight: bold;">#= kendo.toString(UnitPrice, "n2") #</div>', exportTemplate: '#= kendo.toString(UnitPrice, "n4") #', aggregates: ["sum"] } ]
Current filter control for a date column only shows a date picker, if the data that's bound to the column also contains the time part then the filters don't work properly. Adding a date time picker would solve the problem.
We want events for expand/collapse groups in Grid, similar to the existing events for details. This events will helps us for personalize some funcionalitys. Thanks.
Hello, from our development I could collect some suggestions for improvement, which we would be pleased about in the future: MVC -> Grid -> Export to Excel - Do not show columns in export - currently only possible with Javascript - Display additional columns in the export that are only displayed in the export and not in the interface
Consider a grid with grouping and pagination. When we collapse a group, the items from next page should take up the space left be the hidden rows, i.e., grouping should work across pages and not just the current page. Otherwise, grouping is a useless feature in a grid with pagination. This should work for client as well as server pagination and also for virtual scroll.
Currently, the Kendo grid has an option to apply only one type of filtering for a specific column (be it standard filtering or multi-checkbox filtering). There is a custom approach which actually builds a custom check box list that is attached to the standard filter. But, there are lot of options that are missing like Select All, Search box etc. There should be a way where user can apply different types of filter criteria on the same column.
We now have operators that support filtering for null/empty values in grid columns. These are available using the standard Filter Menu, which provides input fields and the operator dropdown list. Our users really love the Multi Checkbox filtering, which allows them to choose any number of possible values at the same time. The missing feature is that the Multi Checkbox filtering prevents us from finding the "empty" rows. Much the same way that "Select All" is automatically added to the list of checkboxes, please add some sort of "null/empty" item to the list. It would be great if this was configurable. In some of our columns, it's not possible to have empty values, so it doesn't make sense to include the "empty" checkbox for those columns. Be sure to handle scenarios when the data source is automatic based on the data in the grid and when a separate, custom data source is provided for the column.
Allow the use of a custom filter function for a given grid. operator could be assigned a function to perform the filtering. var filter = { field: field, operator: function(row, column, filterUi) { var fieldValue = row[column.field]; return matchesArbitratryCriteria(fieldValue); }, value: value, };