To have a paging option based on the alphabetical order for certain column instead of number paging
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
With a batch edit grid, it would be nice to have the ability to cancel a data operation if cells have been edited. Currently if the user edits some cells and then does a filter or paging operation before they save their changes, there is no way to warn them and prevent the operation from taking place. So they will lose their changes. Ideally, I'd like to have an event that fires before the read() operation is called on the datasource which would allow the read to be cancelled.
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
Hi,
The Kendo UI Grid has the ability to conditionally hide/show the command columns. But in order to hide some buttons from the toolbar, you need a dataBound handler. It will be useful to hide the "Create" button from non-admins, but be able to show the PDF and Excel Export or hide the entire toolbar.
toolbar: [
{ name:
"create"
, visible:
function
(){
return
isAdmin; } },
{ name:
"reports"
, visible:
function
(){
return
isManager }},
{ name:
"cancel"
}
],
.Events(e=>e.DataBound(
"onDataBound"
))
function
onDataBound(e) {
if
(
true
) {
// the condition against which you want to show/hide the toolbar
this
.element.find(
".k-grid-toolbar"
).hide();
// hides the entire toolbar
this
.element.find(
".k-grid-add"
).hide();
// hides just the Create button
}
}
We need to display a custom content in the grouping cells (the empty leftmost indentation cells in data rows). Currently it is impossible since the cells are rendered "statically" (kendo.grid.js, line 337): function groupCells(count) { return new Array(count + 1).join('<td class="k-group-cell"> </td>'); } Currently I insert my cell content AFTER the rows are rendered using $('.k-group-cell', row).html(...). But, you know, it is far not the best approach. Please implement a grid option, say, groupCellTemplate:string|object – it won't be too hard. And let me know if you would like me to contribute.
When the grid is grouped, the grouping column is visible with the same values in each cell of each group. Looks weird and confusing. How can we accomplish more efficient look and hide the grouping column? http://demos.devexpress.com/aspxgridviewdemos/GroupingSorting/Grouping.aspx Reference article: http://www.kendoui.com/forums/ui/grid/how-to-hide-the-column-the-grid-is-grouped-by-additional-grouping-questions.aspx
Currently you can clone the Pager to make it appear both on Top/Bottom. This should be configurable so that you can have in on top of the grid or the bottom of grid or both
Add support for canvas rendering to the grid. This will improve performance of the grid considerably. Part of our testing we have concluded that the current kendo grid is not working well with a number higher than 1000 records as it will become very slow when the user is scrolling the data. In an attempt to fix this the virtual scrolling has been introduced but this breaks the grouping as the number of records displayed do not take into consideration if a group is collapsed or not. Therefore you may end up in a situation where you collapse a group with 100 rows and the grid will not display the next groups as they are not part of the current page (e.g page size 10); As an example of a canvas based grid see below: https://github.com/openfin/fin-hypergrid
Searching by date range is a very common use-case in most business applications. I need a From and To calendar controls in the row filter. I would advise Telerik to put this functionality on the roadmap, else the row filter functionality is so restrictive as to render it useless. I am having to roll my own filters above the grid because of this one omission which is a real shame because the rest of the Grid functionality is so good. (I don't want to use filters in column headers because I don't like the fact you loose visibility of what filters are on - probably the reason for the grid rows introduction)
<div data-role="grid" data-editable="true" data-toolbar="['create', 'save']" data-columns="columns" data-bind="source: products}"></div> var viewModel = kendo.observable({ products: ... columns:[ {field:"id", width:50}, {field: "name", width:200} ...etc ] });
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, };
Hi, Please refer to the following forum for more detail about the problem and my suggestion: http://www.telerik.com/forums/grid-row-navigation-by-keyboard#ncKqVMBBqUe5ZymNXwpFgg Summary: I think in Grid widget, there should be difference between selectable="cell" and selectable="row" (for keyboard Up&Down Arrow navigation). or perhaps you want to add another choice, example selectable: "row cell" (to replace the current setting for "row") and the selectable = "row", just select the row not cell and also DO NOT go to grid header! I believe it's good that you enhance/solve this shortcoming inside the Grid design, because developer like us who has already decided row selection (selectable: "row") during design-time, it doesn't make sense that still the keyboard navigation is at the cell level, isn't it? Thank you.
Provide support for momentum scrolling in Mobile Safari for virtualization of remote data grids. http://demos.telerik.com/kendo-ui/web/grid/virtualization-remote-data.html
Hi.
kendoGrid Pager has a feature of disabling focus of pager arrows with a tabindex="-1".
I was able to override this behavior in some cases. But sometimes it becomes tricky to override this behavior.
My question is:
"Is it possible to disable this behavior, not to override it but really disable. Or if not - maybe you have plans to add such an option in the future (maybe I can submit to the feature updates somewhere)?"
Currently, If I use Kendo Grid on a page with 10 column by 10 rows(and have 3 rows in editable mode & 7 rows in disabled/locked mode). I can not navigate through grid control via TAB key with only Enabled columns. It still go through each control. Logging to support request, I am being advised that I need to impalement my own TAB logic. However, if you think, it doesn't make sense for TAB to be stopped at Disabled column. It is probably stopping as Kendo doesn't have any direct mechanism of disabling some columns for edit. I wrote some Jquery which doesn't let us click on some column and I used CSS to make it look like disabled. It is nice if ClientTemplate allows facility where we can enable/disable controls and TAB key respect those.
It would be really great if Kendo implemented JQuery Promises on all methods that are fired asynchronously. There are several places where there would be direct and tangible benefits: 1) DataSource: Methods like fetch() and read() would be able to chained with .then(), .fail(), and .always() in order to complete certain operations after these methods have completed, but before events are fired up the chain. 2) UI controls like Grid: calling KendoGrid.saveChanges() would allow you to chain a .then() function to the end, so that a particular function can be called only when a particular instance of saveChanges completes, not every time the requestEnd event is fired on the DataSource.
To me these are all glaring bugs, especially for those who like to use their keyboard instead of their mouse to fill out forms. 1. Mouse scrolling drop downs/comboboxes scrolls the page when it hits the top/bottom. 2. Enter key opens/closes subgrid instead of putting cell into/out of edit mode. 3. Backspace in drop downs causes browser to go back to the previous page. 4. Comboboxes, when filtering, should always "select" the highlighted item when tab is pressed.(the little auto-complete hack/setting doesn't cut it) 5. There is no easy keyboard way to open drop downs and date pickers in the grid. 6. Tabbing to a button cell and hitting Enter does not click the button.
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.
When using Frozen columns in the grid, the frozen column is not usable for vertical scrolling when used in a mobile application. This means that it is not possible to swipe up and Down on the frozen column to scroll the grid vertically. This again makes the user experience very odd (actually it feels like a bug), because it is not natural to have to use the other, none froze columns, to be able to scroll vertically. Thanks! Jon