Even if a message file is added, the command buttons and the popup title in the Grid are not localized
The command buttons and the dialog title are not localized:
It should be possible to change and localize the messages texts.
function onEdit(e){
e.container.closest('.k-window').find('.k-window-title').text('My custom text')
e.container.closest('.k-window').find('.k-button[ref-update-button]').text('Button Update Changed');
e.container.closest('.k-window').find('.k-button[ref-cancel-button]').text('Button Cancel Changed');
}
Using Telerik.Ui.for.aspnetcore version 2025.4.1111, when i create a grid
@(
Html.Kendo().Grid<Land_Management_System.LASIViewModels.LASIMainRecordViewModel>()
.Name("LASIGrid")
.Height("auto")
.Editable(x => x.Enabled(true)
.Mode(GridEditMode.PopUp)
.TemplateName("_LASITabStrip")
.Window(x =>
{
x.Width("90vw").Height("90vh");
x.Resizable().Scrollable(true);
x.Actions(x => x.Minimize().Maximize().Close());
})).Events(x => x.Save("onGridSave").Edit("onGridEdit"))
.Columns(columns =>
{
columns.Bound(p => p.Id).Filterable(true).Visible(false);
columns.Bound(p => p.LASIGuid).Title("LASI Ref No").Filterable(true);
columns.Bound(p => p.UPRN).Title("UPRN").Filterable(true).Visible(false);
columns.Bound(p => p.SiteLocation).Title("Site Location").Filterable(true);
columns.Bound(p => p.Region).Title("Region").Filterable(true).Visible(false);
columns.Bound(p => p.Pre2015Council).Title("Former NIHE District").Filterable(true).Visible(false);
columns.Bound(p => p.SuperCouncil).Title("Super Council").Filterable(true);
columns.Bound(p => p.AreaOffice).Title("Area Office").Filterable(true);
columns.Bound(p => p.ParliamentaryConstituency).Title("Parliamentary Constituency").Filterable(true).Visible(false);
columns.Bound(p => p.DevelopmentLimit).Title("Development Limit").ClientTemplate("#= DevelopmentLimit ? DevelopmentLimit.Name : '' #").Filterable(true);
columns.Bound(p => p.Area).Title("Area").Filterable(true);
columns.Bound(p => p.ReferenceType).Title("Reference Type").ClientTemplate("#=ReferenceType ? ReferenceType.Name : ''#").Filterable(true);
columns.Bound(p => p.PlannerText).Title("Planner").Filterable(true);
columns.Command(command =>
{
command.Custom("Edit").Click("showEdit");
command.Custom("Details").Click("showDetails");
});
})
.Filterable(filterable => filterable
.Mode(GridFilterMode.Menu) // Enables per-column filtering
)
.Width("auto")
.Pageable()
.Groupable()
.ToolBar(t =>
{
t.Create();
})
.Sortable()
.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.Events(events => events.Error("grid_error_handler").RequestEnd("on_board_grid_request_end"))
.PageSize(10)
.ServerOperation(true)
.Model(model =>
{
model.Id(p => p.Id);
model.Field(prop => prop.Id).DefaultValue(0);
model.Field(prop => prop.DevelopmentLimit).DefaultValue(new DevelopmentLimitViewModel());
model.Field(prop => prop.ReferenceType).DefaultValue(new ReferenceTypeViewModel());
model.Field(prop => prop.Planner).DefaultValue(new UsersViewModel());
model.Field(prop => prop.Category).DefaultValue(new CategoryViewModel());
model.Field(prop => prop.TempUploadKey);
})
.Read(read => read.Action("LASIRead", "LASI"))
.Create(create => create.Action("LASICreate", "LASI"))
.Update(update => update.Action("LASIUpdate", "LASI"))
)
.NoRecords(true)
)
when i try and create a new record the save button is disabled when it fails validation, when i complete the failed validation fields the button is not re-enabling
### Bug report
When an Editor component in inline mode is set as an editor in an InCell editable Grid, the Grid cell does not enter edit mode on "click". The issue occurs since version 2023.1.314.
### Reproduction of the problem
1) Create an InCell editable Grid.
2) Set an Editor component in inline mode as an editor to a specified Grid column.
3) Try to edit the cell.
4) The cell flashes and does not enter edit mode.
A Dojo sample for reporduction: https://dojo.telerik.com/zQUvDQEq (check out the "ProductName" column)
### Expected/desired behavior
The Grid column that uses Editor component in inline mode must be editable.
### Environment
* **Kendo UI version: since 2023.1.314
* **jQuery version: 3.4.1
* **Browser: [all]
### Bug report
When using the default column checkbox filter menu and the data requested from the server takes time to load, the filter menu popup does not resize correctly when opening the menu for the first time.
The issue started to occur in version 2025.1.211.
### Reproduction of the problem
1) Enable the checkbox filter menu of a specified column. The Grid binds to remote data and the data operations are perfomed on the server.
2) Open the filter menu when the Grid is loaded.
3) The Read request triggers and a loader is displayed to indicate that the data is loading:
4) The options are loaded, but the popup container does not expand as expected:
5) Close the filter menu and opend it again:
### Expected/desired behavior
The filter menu popup must display all options when the data is loaded.
### Workaround
<style>
.k-animation-container-shown {
overflow: visible !important;
}
</style>
### Environment
* **Kendo UI version: 2025.2.520
* **jQuery version: 3.7.1
* **Browser: [all]
When ParseFormats is set in the DatePicker editor used in the Grid popup, the picker does not show the field value to which it is bound.
public DateOnly? OrderDate { get; set; }
.Model(model =>
{
model.Id(p => p.OrderID);
model.Field(p => p.OrderDate).DefaultValue(new DateOnly());
})
@model DateOnly?
@(Html.Kendo().DatePickerFor(m => m).ParseFormats(new string[] { "MM/dd/yyyy" }).HtmlAttributes(new { title = Html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName("") }))
When editing a record. The value of the OrderDate field is not displayed in the DatePicker.
If you remove the ParseFormats option from the DatePicker, it shows the value as expected.
The field value should be displayed in the picker, even when ParseFormats is set.
### Bug report
When the Grid is set up for OData-v4 binding, the columns that bind to DateOnly fields fail to filter. The date value in the filter expression contains the time portion and the following error is thrown:
"The binary operator GreaterThan is not defined for the types 'System.Nullable`1[System.DateOnly]' and 'System.Nullable`1[System.DateTimeOffset]'."
### Reproduction of the problem
1) Create a Grid that uses OData-v4 binding.
2) Bind a specified column to a DateOnly field.
3) Filter the column through the default column filter menu and open the browser DevTools to review the response of the request.
//Model
public DateOnly LastProdUpdate { get; set; }
//View
@(Html.Kendo().Grid<ProductViewModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.LastProdUpdate).Format("{0:dd/MM/yyyy}");
})
...
.Filterable()
.DataSource(dataSource => dataSource
.Custom()
.Type("odata-v4")
.Transport(t =>
{
t.Read(read => read.Url("/odata/Products").Data("function() {return {'$expand': 'Employee'} }"));
})
.PageSize(10)
.ServerPaging(true)
.ServerFiltering(true)
.ServerSorting(true)
)
)### Expected/desired behavior
The DateOnly fields must be filtered successfully as the DateTime fields.
### Environment
* **Kendo UI version: 2024.4.1112
* **Browser: [all]
Filterable configuration in ForeignKey is not serialized in TagHelper Grid.
Open this REPL example
Filterable configuration in ForeignKey is not serialized in TagHelper Grid.
Filterable configuration in ForeignKey should be serialized in TagHelper Grid.
1692361
Hi,
I'm following this document to load data into the grid view control using local data binding.
https://demos.telerik.com/aspnet-core/grid/local-data-binding
I'm not sure this is an issue or expected grid view behavior when using local data binding. If loader-type and no-records are added. What happens is when there are no records, the Skeleton is still displayed and the no-records template is not displayed (see the attached image)
<kendo-grid mobile="Disabled" name="Grid" loader-type="GridLoaderType.Skeleton">
<columns>
<column field="ProductName" title="Product Name">
</column>
<column field="UnitPrice" format="{0:C}" title="Unit Price" width="130">
</column>
<column field="UnitsInStock" title="Units In Stock" width="130">
</column>
<column field="Discontinued" title="Discontinued" width="130">
</column>
</columns>
<datasource type="DataSourceTagHelperType.Ajax" page-size="20" server-operation="false" data="@Model">
</datasource>
<filterable enabled="true">
</filterable>
<scrollable enabled="true" />
<pageable enabled="true">
</pageable>
<sortable enabled="true" />
<no-records template="string HTML template, automatically centered" />
</kendo-grid>
Thanks
Bob
The rowReorder event does not return the correct newIndex when dragging a row from a lower row index to a higher row index.
Chai and drop after Chang. Note oldIndex is 0, newIndex is 2, which is unexpected as indices are 0-basedChang and drop before Chai and the indices are correct - oldIndex: 1, newIndex: 0The returned newIndex is incorrect.
The returned newIndex should be correct.
### Bug report
When using the sort" and "filter" toolbar commands, the "sort" and "filter" events do not trigger.
### Reproduction of the problem
A Dojo sample for reporduction: https://dojo.telerik.com/ySEQTSSS
### Expected/desired behavior
The "sort" and "filter" events must trigger when sorting and filterng the columsn through the respective toolbar commands.
### Environment
* **Kendo UI version: 2025.2.520
* **jQuery version: 3.7.1
* **Browser: [all]
### Bug report
The "Clear Sorting" and "Clear all filters" labels cannot be localized when using the "sort" and "filter" toolbar commands.
### Reproduction of the problem
A Dojo sample for reporduction: https://dojo.telerik.com/JHJGUaSH
### Expected/desired behavior
The "Clear Sorting" and "Clear all filters" messages should be exposed for localization.
### Environment
* **Kendo UI version: 2025.2.520
* **jQuery version: 3.7.1
* **Browser: [all]
### Bug report
When opening the filter menu of a specified column through the classic ColumnMenu, the filter container is displayed with scrollbars when the dropdown of the filter operator is opened.
### Reproduction of the problem
1) Define a Grid and enable its classic ColumnMenu.
2) Open the filter menu of a specified column and then open the dropdown to select a filter operator.
3) The filter container has scrollbars. The "k-menu-popup" element has "overflow: auto";
Use the following demo to test the case and select the "classic" type for the ColumnMenu: https://demos.telerik.com/kendo-ui/grid/column-menu
The issue does not appear when using version 2024.4.1112.
### Expected/desired behavior
The filter menu container must not change its appearance when the dropdown opens.
### Workaround:
<style>
.k-menu-popup {
overflow: visible !important;
}
</style>
The Core Grid throws an exception when setting its toolbar template through the ClientTemplateId option. The issue is a regression introduced in version 2025.2.520.
.ToolBar(toolbar => {
toolbar.ClientTemplateId("myTemplate");
})
An exception is thrown:
NullReferenceException: Object reference not set to an instance of an object
The configuration works without throwing exceptions.
Use the alternative way of setting the toolbar template, on the Grid's root level:
@(Html.Kendo().Grid <MyModel>()
.Name("grid")
.ToolBarClientTemplateId("myTemplate")
Expose additional API configurations for the Grid's ToolBar
As of recent releases, the Kendo UI Grid Toolbar has been substituted with the Kendo UI Toolbar. This change allows users to add the majority ToolBar.items API options apart from the built-in tools.
As noted within the Kendo UI for jQuery API documentation for the Grid's Toolbar:
"Apart from the built-in tools, the Grid fully exposes the ToolBar.items API. This way you can specify any custom tools in the widget using the components available in the ToolBar itself."
The inherited ToolBar.items API options are not available for the server-side Telerik UI Grid for ASP.NET Core and MVC wrappers as well.
It would be beneficial to the customers if the inherited ToolBar.items API options are available for the server-side Telerik UI Grid for ASP.NET Core and MVC wrappers as well.
Expose the sorts TagHelper for the Grid's column filter datasource taghelper
Currently, the Grid's Column Filter Datasource Taghelper exposes the following inner child TagHelpers.
Unlike its HtmlHelper counterpart which happens to expose the .Sort() API configuration. For example:
.Columns(columns =>
{
columns.Bound(p => p.ShipName).Filterable(ftb =>
{
ftb.Multi(true);
ftb.Search(true);
ftb.CheckAll(true);
ftb.DataSource(dataSource => dataSource
.Custom()
...
.Sort(sort =>
{
sort.Add("ShipName").Ascending();
})
);
});
})
Dojo example: https://dojo.telerik.com/eRazIrIB
The data is requested, but it is not displayed in the Grid.
The data is displayed, regardless of the type of loader used.
The column format applied through the .Format() option is ignored, if the column is bound to a nullable DateOnly field.
public DateOnly? PaymentDate { get; set; }
columns.Bound(p => p.PaymentDate).Title("Date").Format("{0:MM/dd/yyyy}").Width(160);
The specified format is ignored, e.g., the Grid shows 2025-01-21, instead of 01/21/2025
The specified column format is applied.
### Bug report
When the Grid filter menu is customized with a DropDownList, the initial option defined by using the "index" property is not set.
### Reproduction of the problem
A Dojo sample for reproduction: https://dojo.telerik.com/OmeXUfaF
### Expected/desired behavior
The DropDownList should be initialized with an initially selected option.
### Environment
* **Kendo UI version: 2022.1.119
* **jQuery version: 1.12.4
* **Browser: [all]
The last checkbox selection is not disabled and allows all the columns to be removed if the menu options for the command column are explicitly set to false:
The last checkbox selection should be disabled without allowing all the columns to be removed if the menu options for the command column are explicitly set to false:
The following dojo depicts the aforementioned behavior.