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.
Add a new attribute columns.command.materialIconClass and render it e.g. as <i class="material-icons">contact_mail</i> Example: var grid = $("#grid").kendoGrid({ dataSource: { pageSize: 20, data: createRandomData(50) }, pageable: true, height: 550, columns: [ { field: "FirstName", title: "First Name", width: "140px" }, { field: "LastName", title: "Last Name", width: "140px" }, { field: "Title" }, { command: { materialIconClass: "contact_mail", text: "View Details", click: showDetails }, title: " ", width: "180px" }] }).data("kendoGrid");
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.
When a user zooms OUT on a browser(like Google Chrome) to 67% or 75%, sometimes the resize handles do not work. We added css on top to see why(made the resize handle more visible). The handle moves to the left the more the user zooms out. Seems to work fine up to 80% but starts to fail after that. Thanks
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, pressing the arrow keys will scroll up and down the grid. It would be good if we could also use the arrow keys to change the selected row
It would be nice to have the option to configure different column titles for the column menu. For example, when there is a multi-header Grid, you could use this functionality to add the header title to the column title. https://www.screencast.com/t/qgeK9fFMPP https://www.screencast.com/t/NRl61JFzFH
I know there was a request was declined, but DOM double click can't pass data row, it is a common feature to have.
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.
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.
Add ability to have a horizontal scrollbar in the kendoui grid that appears at both the top and bottom of the data set to ease scrolling in large data sets.
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.
The new event should fire as soon as the grid is fully rendered und ready to take user input or focus. We need this for automated UI Testing. SetTimeout does not work reliable.
Frozen Columns is a really useful addition to the grid, but we're not able to implement it at present as we don't want to force our users to always have one column locked. We don't want to dictate which column that should be, e.g. fixing the LH column. If we could enable Frozen Columns giving the user freedom to freeze one or more columns of their choice, that would be ideal.
would be useful