The paging functionality will not change the page automatically if no data is left on the page. I have recently encountered this issue, and I find it very astounding that i have found a request for this from several years ago and nothing has been done on it. This shouldn't have to be done by end users, the goal of your functionality is to provide easier solutions to users. This should be automatic functionality of any code that creates a pager. If the fix is as simple as the replies to requests for this suggest, it should be very simple to implement this in your next build to function automatically if paging is active. Please get this fixed. Thanks.
When scrolling is disabled for a grid and column resizing is enabled, resizing a column acts in a strange manner and attempts to size all columns of the grid. I would expect that only the two columns on each side of the resize handle should have their widths altered. Otherwise scenarios can occur where you are completely unable to resize columns. If this would not be default functionality, I would at least suggest a flag to enable it at grid setup.
global option for grid colums that sets the format of number editor ui
global option for grid colums that sets the decimal scale of number editor ui
The Grid does not currently support MVVM bindings for events deeper than one level of nesting. Please fix this.
Please check out a bug in the material design theme for grid pageing combobox in mobile device. You can check this bug at http://demos.telerik.com/kendo-ui/grid/remote-data-binding you have to adjust "mobile:true" option and then run by mobile simulator instead of web. When you change the page with combobox. Grid's height will be reduced by combobox height. This bug occured only in material design theme. (I didn't check all theme. I checked material, default, bootstrap, nova, fiori, office365)
Quite often you would need to set custom attributes to buttons that may not have any inbuilt functionality for Kendo Grid. This option is currently not available unless we use a template and build our own buttons. It would be useful to set the attributes similar to how the class attributes are set so we won't have to build a template of our own.
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.
The grid validation does not work well when the grid is part of a complex form containing simple fields and a Kendo Validator. See this forum thread: http://www.telerik.com/forums/grid-custom-validation-not-shown The grid validation should integrate better with a form level kendo validator so you can validate both the grid and the simple fields easily.
With out using the group column header(columns.columns). it is better to enable one option to keep some of the columns locking together in the grid. If you reorder one column other columns should move with it like that. When we use the columns.columns option we can't find the columns under that header using the column Index (column[index]) option.
Allow changing Grid's AutoComplete filter operator per Grid (not for each column) through a property
Current, if one were to use the Kendo Grid in UI for MVC, there's no way to bind the datasource using Ajax binding and specify server side parameters to the read function in the controller. In many cases, the read function on the controller side will use a primary key to do a select statement to get particular details of a model to render. This is relatively simple to keep track of on the javascript side and server side when there's just one grid, as we can use a hidden input and always update it's value from the model. However, when we have an array of grids, and an array of primary keys for the grids, this is very difficult to keep track of which read function corresponds to which grid. The only solution is to generate multiple javascript read functions with the primary key baked into the names and in the bodies of the functions on the server side, which is ugly and not optimal for security. @foreach(var modelID in Model.ModelIDs) var readFunction = "function modelStatsReadData_" + modelID + "()"; <text> @readFunction { return { modelID: @modelID } } </text> } @*end foreach loop*@ @foreach(var model in Model.Models) { .... .DataSource(dataSource => dataSource .Ajax() .Model(model => { model.Id(m => m.ID); }) .Read(read => read.Action("FlowPlanDetails_Read", "SubmitFlow").Data("flowPlanReadData_" + @model.D)) } This is solvable if we do server side binding for the datasource, as we can pass route values. But that is an entirely different implementation and we shouldn't have choose Ajax() versus Server() binding based on how functional the API is.
Currently, there's no way to pass variables into client footer template functions that are registered with client footer templates. In the case when you have multiple grids on the same page with different grid ids, you are forced to instantiate multiple javascript callback functions with the grid id/name baked into the function. Consider: @foreach @foreach (var model in Model.MyModels) ... ... @(Html.Kendo().Grid<eFHOL.Models.ViewModels.MyModelModel> () .Name("ModelGrid_" + @model.ID) .Columns(columns => { columns.Bound(m => m.Name).Width(30).ClientFooterTemplate("#= footerLabel(data) #"); columns.Bound(m => m.Hours).Width(30).ClientFooterTemplate("#= HoursSumAvg_" + @model.ID + "(data) #"); columns.Bound(m => m.Weight).Width(30).ClientFooterTemplate("#= WeightSumAvg_" + @model.Weight + "(data) #"); And you will have to have server side code to register and wire up each of these distinct javascript footer template callback functions: @foreach(var modelID in Model.ModelIDs) { var hourFunction = "function HoursSumAvg_" + modelID + "(model) "; <text> @hourFunction { var grid_name = '#FlowPlanDetailsGrid_@modelID'; return HoursSumAvg(grid_name); } This quickly becomes a mess if you have a for loop that renders 5 or 10 grids, as we have the use-case for. It would be very helpful if there was a way to register the name of the callback which accepts server side parameters that can be evaluated on the server side and passed to the javascript function. Alternatively, if the client footer template functions could somehow retain the name of the grid they are bound to, via a property in the parameter passed in, that would be good enough.
It seems that you would want to conditionally have clearSelection() behave differently with persistSelection enabled, as it does not clear the selection of items on other pages. At the very least offer us a clearAllSelections() method if modifying the behavior of the other method is not desirable.
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
When grid column is hidden template code is still being executed. For large data sets with many hidden columns this makes grid scroll slower than is necessary... { id: 'Artist', title: Columns.ARTIST, field: Columns.ARTIST, width: '100px', hidden: true, template: function (dataItem) //this gets executed even when column is hidden. { return someMethodToDetermineArtrist(dataItem); } }
The popup dialog used by the Grid control does not match the Dialog control. With the same theme applied, the title bar is different (height, font size, and close button), and the button bar footer layout is completely different (button shape, size, and location). By default, dialog look & feel should be consistent across controls using the same theme.
When using a template for Grid PDF export, usage of AngularJS scope variables should be possible, e.g. to customize the title.
KendoUI Grid persist row selection state after update a field programmatically via the set method of the dataItem.