### 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 Kendo UI for jQuery TreeList provides options for configuring the settings of the Window when using Popup editing mode:
Currently, the Window options are not available for the HtmlHelper and TagHelper TreeList. Is it possible to implement the Window() configuration of the Editable() option, as per the example below?
.Editable(e => { e.Mode("popup"); e.Window(w => w.AppendTo("..").Animation(false).Draggable(false).Title("...")); })
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 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();
})
);
});
})
.Items(items => { items.Add() .Field(f => f.Type) .Label(l => l.Text("Type:")) .Editor(e => { e.Upload() } }
When using the Kendo MultiSelect TagHelper and binding it to a model property, the selected values are not populated.
Create the MultiSelect and bind it to a property of the view model:
@model API.Models.IndexViewModel
<kendo-multiselect for="SelectedCategoriesTagHelper"
bind-to="@Model.Categories"
datatextfield="Text"
datavaluefield="Value"
></kendo-multiselect>
The MultiSelect TagHelper should correctly display the selected values when bound to a model property.
1682678
The Thumbnail() option of the Editor's ImageBrowser configuration does not provide UrlHandler() option, which is available for the Image() option.
Referenced in this commit
The UrlHandler() function must be available to set the URL that serves the thumbnail using a JavaScript handler.
1682129
### Bug report
The File() option of the Editor's FileBrowser configuration does not provide UrlHandler() option, which is available for the ImageBrowser.
### Reproduction of the problem
1) Define an Editor and enable the FileBrowser feature:
@(Html.Kendo().Editor()
.Name("Description")
.Tools(tools => tools
.Clear()
.InsertFile()
)
.FileBrowser(fileBrowser => fileBrowser
.File("GetFile", "FileBrowser", new { path = "{0}" })
.Read("Read", "FileBrowser")
.Create("Create", "FileBrowser")
.Destroy("Destroy", "FileBrowser")
.Upload("Upload", "FileBrowser")
)
)
2) The File() option sets URL responsible for serving the original file. Try to set it by using a JavaScript handler.
3) The File(x => x.UrlHandler("setURLHandler")) configuration is not available.
### Expected/desired behavior
The UrlHandler() function must be available to set the URL that serves the file using a JavaScript handler.
### Environment
* **Telerik UI for ASP.NET Core version: 2025.1.211
* **Browser: [all]
Hi Team,
Currently, Telerik.Licensing NuGet package only has target for netstandard2.0, netframework462 and net6.0. I cannot use .NET 6 for my .NET 9 application because .NET 6 is out of support.
This is a feature request to either
Thank you,
Arthur
### Bug report
When loading a PDF file using the PDFViewer configured for DPL processing, the file content is loaded partially.
### Reproduction of the problem
1) Open the DPL Processing Demo: https://demos.telerik.com/aspnet-core/pdfviewer/dpl-processing
2) The file content is not loaded as expected.
The issue started to occur in version 2025.1.211. When comparing the responses of the "pdfviewer/getinitialpdf?pageNumber=1" request, the response when using the previous version (2024.4.1112) is longer than that of version 2025.1.211.
### Expected/desired behavior
The content of the loaded PDF file must be complete.
### Environment
* **Telerik UI for ASP.NET Core version 2025.1.211
* **Browser: [all]
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.
### Bug report
When deferring the component scripts to a file and a specified item of a Form HtmlHelper has a defined editor through the Editor() configuration, a client-side error is thrown:
"Uncaught Error: Syntax error, unrecognized expression: #"
### Reproduction of the problem
1) Enable the global deferred initialization.
2) Define a Form HtmlHelper with a ComboBox editor for one of its items:
@model FormViewModel
@(Html.Kendo().Form<FormViewModel>()
.Name("form")
.HtmlAttributes(new { action = @Url.Action("SubmitData", "Home"), method = "POST" })
.FormData(Model)
.Items(items =>
{
items.Add()
.Field(f => f.Username)
.Label(l => l.Text("Username:"));
items.Add()
.Field(f => f.City)
.Label(l => l.Text("City"))
.Editor(editor => editor
.ComboBox()
.DataTextField("Text")
.DataValueField("Value")
.BindTo(new List<SelectListItem>()
{
new SelectListItem() { Text = "City A", Value = "1" },
new SelectListItem() { Text = "City B", Value = "2" },
new SelectListItem() { Text = "City C", Value = "3" }
})
);
})
)
@(Html.Kendo().DeferredScriptFile())
3) When the page with the Form is loaded, open the browser console and examine the error. Review the content of the loaded kendo-deferred-scripts-xxxxx.js file - the ComboBox initialization script is included after the Form initialization script. Attached you can find screenshots.
When using the TagHelper version of the Form, the ComboBox initialization script is included in the kendo-deferred-scripts-xxxxx.js file before the initialization script of the Form with a unique generated "id" for example "3451ce77-2736-437f-9584-f5a5255902c2". In this case, no client-side errors occur.
### Expected/desired behavior
When deferring the component scripts to a file, the Form with specified editors must be initialized as expected without client-side errors.
### Workaround
Use the TagHelper version of the Form or define the editor by using the EditorTemplateView() option:
items.Add()
.Field(f => f.City)
.Label(l => l.Text("City"))
.EditorTemplateView(Html.Partial("ComboEditor"));
// ~/Views/Shared/ComboEditor.cshtml
@model FormViewModel
@(Html.Kendo().ComboBoxFor(m => m.City)
.DataTextField("Text")
.DataValueField("Value")
.BindTo(new List<SelectListItem>() {
new SelectListItem() { Text = "City A", Value = "1" },
new SelectListItem() { Text = "City B", Value = "2" },
new SelectListItem() { Text = "City C", Value = "3" }
})
)
### Environment
* **Telerik UI for ASP.NET Core version: 2024.4.1112
* **Browser: [ all ]
When enabling Editing for the Grid or TreeList a "No License" overlay is displayed in the following scenarios:
@(Html.Kendo().Grid<TelerikMvcApp13.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);
columns.Command(c => c.Edit());
})
.Editable(e=>e.Mode(GridEditMode.PopUp))
.Pageable()
.Sortable()
.Scrollable()
.Filterable()
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Model(m=>m.Id(o=>o.OrderID))
.Read(read => read.Action("Orders_Read", "Grid"))
.Update(read => read.Action("Orders_Update", "Grid"))
.Create(read => read.Action("Orders_Create", "Grid"))
.Destroy(read => read.Action("Orders_Destroy", "Grid"))
)
)
@(Html.Kendo().TreeList<Kendo.Mvc.Examples.Models.TreeList.EmployeeDirectoryModelPopUp>()
.Name("treelist")
.Toolbar(toolbar => toolbar.Create())
.Columns(columns =>
{
columns.Add().Field(e => e.FirstName).Width(220).Title("First Name");
columns.Add().Field(e => e.LastName).Width(100).Title("Last Name");
columns.Add().Field(e => e.Position);
columns.Add().Field(e => e.HireDate).Format("{0:MMMM d, yyyy}");
columns.Add().Field(e => e.Phone).Width(200);
columns.Add().Field(e => e.Extension).Width(140).Title("Ext").Format("{0:#}");
columns.Add().Width(300).Command(c =>
{
c.CreateChild().Text("Add child");
c.Edit();
c.Destroy();
});
})
.Editable(e => e.Mode("popup"))
.DataSource(dataSource => dataSource
.Create(create => create.Action("Create", "EmployeeDirectory"))
.Read(read => read.Action("All", "EmployeeDirectory"))
.Update(update => update.Action("Update", "EmployeeDirectory"))
.Destroy(delete => delete.Action("Destroy", "EmployeeDirectory"))
.Model(m =>
{
m.Id(f => f.EmployeeId);
m.ParentId(f => f.ReportsTo);
m.Expanded(true);
m.Field(f => f.FirstName);
m.Field(f => f.LastName);
m.Field(f => f.ReportsTo);
m.Field(f => f.HireDate);
m.Field(f => f.Extension).DefaultValue(0);
m.Field(f => f.Position);
})
)
.Height(540)
)
No overlay and popup should be displayed in case of valid license.
(optional)
Provide the TicketID, where the bug report initiated.
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.
MultiSelect configured for server-filtering="true" sends an empty request on focusout
<kendo-multiselect for="SelectedOrderIds" style="width:100%"
placeholder="Select addresses..."
datatextfield="ShipName"
datavaluefield="OrderID"
filter="FilterType.Contains"
value="Model.SelectedOrders.Select(x=>x.OrderID)">
<datasource type="DataSourceTagHelperType.Ajax" server-filtering="true">
<transport>
<read url="@Url.Page("Index", "Read")" data="forgeryToken" />
</transport>
<schema data="Data">
<model id="OrderID">
<fields>
<field name="ShipName" type="string"></field>
</fields>
</model>
</schema>
</datasource>
</kendo-multiselect>
An empty request is sent, fetching all data.
A request should not be sent.
Trouble on iPad 6/7/8 with Safari.
Using grid with batch and incell edit mode.
Datepicker is not working. It just shows the text box to manually type in date.
Every once in a while the date picker pops up and stays for selection.
Sometimes I see the dat picker, but it goes away suddenly before being able to set a date.
When a Grid's row is reordered and then the changes are saved - a Destroy request is sent to the server for the dataItem of the reordered row. This happens even though no changes are applied to dataItem of the reordered row.
The Grid should request the reordered item to be perished from the backend.
Dynamic Grid produces a RunTimeException when the Filterable() configuration is enabled
System.ArgumentNullException: Value cannot be null.
Example
@model System.Data.DataTable
@(Html.Kendo().Grid<dynamic>()
.Name("gridItem")
.Columns(columns =>
{
foreach (System.Data.DataColumn dcolumn in Model.Columns)
{
columns.Bound(dcolumn.ColumnName).Title(dcolumn.Caption);
}
})
...
.Filterable()
)
The aforementioned declaration will work in the previous 2024.3.1015 version of the suite.
The Grid makes the application throw a runtime error.
The Grid makes the application should not throw a runtime error.