We set up a grid that auto-filters a name field to "does not contain" and the value it excludes is "[DEACTIVATED]". This column is also filtering out records that have a null in them if this filter is set. I had to change the datasource to return an empty string instead.
A recent update has revealed some strange behaviour in some (not all) grids. In the attached screenshot, the javascript for the two buttons is on display inside the toolbar. If I move them out of the toolbar, the script no longer displays.
As a workaround, I have added this to CSS:
script {
display: none !important;
}When endless scrolling is implemented, manual DataSource operations using the DataSource APIs(query, page, sort, etc.) do not work as expected. The endless scrolling settings are causing paging issues.
The first page is only accessible, and when scrolling down the reads continue to occur.
The endless scrolling settings should not interfere with manual dataSource operations.
kendo.ui.Pager.fn._refreshClick = function (e) {
e.preventDefault();
var grid = $("#grid").getKendoGrid();
grid.dataSource.options.endless = null;
grid._endlessPageSize = 20;
grid.dataSource.pageSize(20);
} kendo.ui.Pager.fn._refreshClick = function (e) {
e.preventDefault();
var grid = $("#grid").getKendoGrid();
window.restoreScroll = true;
window.scolledValue = grid.content[0].scrollTop;
grid.dataSource._data.empty();
grid.dataSource._pristineData = [];
grid.dataSource.read();
}Hello Telerik Support Team,
We are experiencing an issue with a Telerik MVC Grid where changing the page size results in multiple Ajax requests being sent to the server.
When the user changes the page size (for example, from 5 to 50), multiple requests are sent to the grid's Ajax binding action.
Example:
Changing the page size should trigger a single Ajax request to the server.The grid uses below code
We also found a Telerik forum post discussing similar behavior during page-size changes:
https://www.telerik.com/forums/multiple-requests-on-telerik-grid-page-size-change
Could you please confirm whether our observed behavior is related to the same issue and advise on the recommended solution?
Note:
Thank you.
When using template and no DataSource is set Grid NoRecords message is not rendered.
Define a 'No Records' with template similar to the following article example: https://docs.telerik.com/aspnet-mvc/html-helpers/data-management/grid/templates/no-records
@(Html.Kendo().Grid<Grid_Template.Controllers.GridModel>()
.Name("Grid1")
.NoRecords(n => n.Template("string HTML template, not centered"))
)The default message for missing record is displayed: No records available.
"autoBind":false is applied to serialization
The message from the template is displayed: "string HTML template, not centered"
Workaround:
Add .DataSource(d => d.Ajax()) to the Grid configuration
@(Html.Kendo().Grid<Grid_Template.Controllers.GridModel>()
.Name("Grid1")
.NoRecords(n => n.Template("string HTML template, not centered"))
.DataSource(d => d.Ajax())
)
https://github.com/telerik/kendo-ui-core/issues/6598
Hi Team,
The Kendo UI Grid's toolbar with a template is not persisted when the Grid is loaded using setOptions.
With a toolbar containing a template with server tags, the toolbar content will disappear.
The Grid should retain the toolbar with the HTML contained when using setOptions.
Environment
Kendo UI version: 2022.2.510
jQuery version: all
Browser: all
Thanks!
Create a Grid using the Telerik UI for ASP.NET MVC wrappers and add .Size(ComponentSize.Medium) to the configuration.
When the Grid is created using Telerik UI for ASP.NET MVC wrappers and .Size(ComponentSize.Medium) is applied the Grid is missing the k-grid-md class.
When using the same configuration but with .Size(ComponentSize.Small) k-grid-sm class is present.
The classk-grid-md is present when using jQuery and Telerik ASP.NET Core.
The behavior should be consistent and the k-grid-md class should be applied also when using Telerik UI for ASP.NET MVC wrappers
@(Html.Kendo().Grid<TelerikMvcApp1.Models.OrderViewModel>()
.Name("grid")
.Columns(columns => {
columns.Bound(p => p.OrderID).Filterable(false).Width(100);
columns.Bound(p => p.ShipCity).Width(100);
columns.Bound(p => p.ShipCity).Width(150);
columns.Bound(p => p.OrderDate).Format("{0:MM/dd/yyyy}").Width(140);
})
.Sortable()
.Filterable(f => f.Extra(true)
.Messages(message => message.Equals("Равно"))
.Messages(message => message.Filter("Приложи"))
.Messages(message => message.Clear("Изчисти"))
.Messages(message => message.Info("Покажи записи които:"))
.Messages(message => message.And("и"))
.Messages(message => message.Or("или"))
.Messages(message => message.AdditionalOperator("fdfdfd"))
.Messages(message => message.IsFalse("Активни "))
.Messages(message => message.IsTrue("Неактивни "))
)
.ColumnMenu()
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Model(model => model.Id(p => p.OrderID))
.Read(read => read.Action("Orders_Read", "Grid"))
)
)
Or use this REPL example: https://netcorerepl.telerik.com/QSYflePv05yaqnLZ07
The issue is also reproducible with the ColumnMenu set the following way:
.ColumnMenu(cm => cm
.Messages(message => message.Columns("Колони"))
.Messages(message => message.ColumnSettings("Насторйки"))
.Messages(message => message.Filter("Филтър"))
.Messages(message => message.SortAscending("Сортирай възходящ ред"))
.Messages(message => message.SortDescending("Сортирай низходящ ред"))
)
The filter menu messages are not set.
The filter menu messages are set regardless of whether a ColumnMenu is enabled or not.
### Bug report
When filtering a specified Grid column, the filter expressions are inverted when the value of the first expression is empty/null.
### Reproduction of the problem
1) Filter a Grid column by leaving the first filter value empty:
2) Filter the Grid and open again the filter menu. The filter expressions are inverted:
A Dojo sample for reproduction: https://dojo.telerik.com/CXChcTJT
### Expected/desired behavior
The filter menu expressions must remain the same.
### Environment
* **Kendo UI version: 2025.2.702
* **jQuery version: 3.7.0
* **Browser: [all]
When the scrollable option is disabled, on resizing the browser window by making it more narrow, at certain point the columns stop resizing and the whole table goes out of the right border of the Grid. Reproducible with the SASS and LESS themes.
Dojo example: https://dojo.telerik.com/ItIrEzEY/3
The table goes out of wrapping element (.k-grid).
The columns resize and the table remains within the borders of the Grid.
We are using the Kendo UI for different components like Grid in our APS.Net MVC application. Currently we are experiencing an issue while exporting the Kendo grid to Excel from mobile (both android and ios). It shows the following warning message. The same works when exporting from a PC without any issue. Could you please help to resolve the issue.
The ClientGroupFooterTemplate and ClientFooterTemplate configuration lead to an invalid template error when strict CSP mode is enabled. There are no corresponding methods that accept a TemplateHandler.
@(Html.Kendo().Grid<TelerikMvcApp3.Models.OrderViewModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.OrderID).Filterable(false);
columns.Bound(p => p.Freight);
columns.Bound(p => p.OrderDate).Format("{0:MM/dd/yyyy}");
columns.Bound(p => p.ShipName);
columns.Bound(p => p.ShipCity).ClientGroupFooterTemplate("Total:").ClientFooterTemplate("Team Total");
})
.Groupable()
.Pageable()
.Sortable()
.Scrollable()
.Filterable()
.HtmlAttributes(new { style = "height:550px;" })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Read(read => read.Action("Orders_Read", "Home"))
)
)
@(Html.Kendo().DeferredScriptFile())
JS exceptions on initializing the Grid and on attempting to group it by ShipCity.
CSP compatible templates.
When the Grid AutoBind() configuration is set to false, the Grid is rendering an empty cell in the row element with class .k-no-data. (Image.png)
Set AutoBind configuration of Telerik UI for Asp.Net MVC Grid to 'false'. The Grid is rendered correctly except for the empty row and the empty cell in the table body.
An empty row with one empty cell is rendered.
The tbody element should be empty.
### Bug report
When the Input() option of the Grid's pager is enabled, the page number buttons are displayed, too.
### Reproduction of the problem
1) Create a Grid and enable the Input() option of the pager.
2) The pager displays both the page number buttons and the page numeric input:
### Expected/desired behavior
When the numeric input is enabled, the page number buttons must not be displayed.
### Environment
* **Telerik UI for ASP.NET MVC version: 2025.2.702
Bug report
When the Kendo UI Grid is configured to have endless scrolling and an item is updated on the first page, the scrollbar is reset. If an update is done on a page after the first one, the scroll is correctly persisted.
Reproduction of the problem
1. Set a grid with an endless scroll.
2. Scroll down (without entering the second page).
3. Update an item on the first page.
4. The scroll is reset.
Dojo sample for reference:
https://dojo.telerik.com/EcUKIrAK
Environment
* **Kendo UI version:** 2021.1.330
* **jQuery version:** 1.12.4
* **Browser:** [all]
In a state persistence scenario, the Grid state is not properly restored when the "all" pageSizes option is selected.
The Grid shows page 1 of the data and the currently selected page sizes option is shown (e.g., 20).
The Grid shows all the data and the pager dropdown shows "all" as the selected value.
The SaveButton() method does not render the Cancel Command button in Grid's Toolbar Template
@(Html.Kendo().Grid<GridModel>()
...
.Name("grid")
.ToolBar(t =>
{
t.Template(@<text>
<span class="group-buttons">
@item.SaveButton();
</span>
</text>);
})
)
The SaveButton() method does not render the Cancel Command in Grid's Toolbar Template.
The SaveButton() method should render the Cancel Command in Grid's Toolbar Template.
A possible way to circumvent this behavior would be to explicitly declare both the Save and Cancel buttons as independent Button components via the Toolbar.ClientTemplate() API configuration.
@(Html.Kendo().Grid<GridModel>()
...
.Name("grid")
.ToolBar(t =>
{
t.ClientTemplate(Html.Kendo().Template()
.AddHtml(@<text>
<span class="group-buttons">
</text>)
.AddComponent(saveBtn => saveBtn
.Button()
.Name("saveBtn")
.Icon("check")
.HtmlAttributes(new { @class = "k-grid-save-changes", style="margin-right: 2%;" })
.Content("Save Changes")
)
.AddComponent(cancelBtn => cancelBtn
.Button()
.Icon("cancel")
.Name("cancelBtn")
.HtmlAttributes(new { @class = "k-grid-cancel-changes" })
.Content("Cancel Changes")
)
.AddHtml("</span>")
);
})
)
Is it possible to implement a MaxLength() option in the Filterable(f => f.Cell()) configuration that will set the maxlength attribute to the Filter row element in order to limit the length of the string that the user can enter into the Filter row input?
For example:
@(Html.Kendo().Grid(Model)
.Name("grid")
.Columns(columns =>
{
columns.Bound(x => x.Name).Filterable(ftb => ftb.Cell(c => c.MaxLength(5)));
})
...
)
The attributes handler overload does not get executed when the column is initially marked as hidden.
hidden property of the ContactTitle field to true.The attributes handler is not executed when the column is hidden.
The attributes handler should be executed when the column is hidden.