Gantt CurrentTimeMarker reappears after the Grid and Gantt tables are resized from the pane between them

After the resize the marker reappears
Starting with version 2025.2.520, the toolbar tools like "Save changes" and "Cancel changes" are hidden by default. When the ShowInactiveTools(true) option is set, the inactive tools are displayed as disabled until a change in the Grid's data is made (for example, the tools are active when the edited cell is closed).
Is it possible to create an option that enables the previous behavior of the inactive toolbar tools - to keep the tools always active and visible no matter if there is a change or not?
For example:
.ToolBar(toolbar =>toolbar
.Items(itm =>
{
itm.Create();
itm.Save();
})
.EnableInactiveTools(true)
)
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
Problem with ToTreeDataSourceResult method when filtering on root and child level.
Also applying filtering causes a significant slowdown in the query created by the ToTreeDataSourceResult method even when applied to small datasets.
Please refer to the code below and simply filter the first column with the value of 5.
//View
@(Html.Kendo().TreeList<WebApplication1.Models.SerialModel>()
.Name("treelist")
.Toolbar(toolbar => toolbar.Create().Text("New Level"))
.Columns(columns =>
{
columns.Add().Field(e => e.RecordID).Width(280);
columns.Add().Field(e => e.SerialNumber).Width(160);
columns.Add().Field(e => e.Name);
columns.Add().Field(e => e.Location).Width(200);
columns.Add().Field(e => e.ParentID).Width(140);
columns.Add().Command(c =>
{
c.CreateChild().Text("New Child");
c.Edit();
c.Destroy();
}).Width(250);
})
.Editable(editable => editable.Mode("inline")).Filterable(true).Filterable(f => f.Extra(false))
.DataSource(dataSource => dataSource
.Read(read => read.Action("TreeListData", "Home"))
//.ServerOperation(false)
.Model(m =>
{
m.Id(f => f.RecordID);
m.ParentId(f => f.ParentID).DefaultValue("0");
})
)
.Height(540)
)
//Controller code:
public ActionResult TreeListData([DataSourceRequest]DataSourceRequest request, int? id)
{
var source = Enumerable.Range(1, 5).Select(x => new SerialModel()
{
RecordID = x,
SerialNumber = x,
Name = "Name " + x,
Location = "Location " + x,
hasChildren = true,
ParentID = x < 5 ? 0 : (x / 5)
});
return Json(source.ToTreeDataSourceResult(request, e => e.RecordID,
e => e.ParentID, e => id.HasValue ? e.ParentID == id : e.ParentID == 0, m => m));
}
Instead of 1 record it returns 2 same items.
Filtering of the TreeList should be as fast as sorting.
The FileManager triggers two Read requests when double clicking a folder in the ListView/GridView. The behavior can be observed in the Basic Usage Demo.
When navigationg to a folder in the TreeView using a single click, the component triggers a single Read request.
Could you consider optimizing the request handling when navigating to nested folders, particularly in ListView/GridView, to reduce redundant Read calls and improve performance?
When a PDF file that contains PNG images is loaded in the PDFViewer that uses DPL, the PNG files are not displayed in the viewer.
An empty file loads in the PDFViewer while the loaded PDF file contains the logo of the Firefox browser.
The PDFViewer should display the Firefox logo loaded in the PDF file.
Hello,
On Chrome for Android, the dropdown menu appears offscreen. With Firefox for Android or Chrome desktop, it works well.
This sample reproduces the problem : https://runner.telerik.io/fullscreen/@kakone/azuPAHuy. If you click on the right item (user icon), the dropdown appears offscreen.
### 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]
Currently, if a PDFViewer is opened on a mobile device and we use two fingers to zoom its content, the file is zoomed but the more we zoom it, the blurrier its content becomes. The reason for this is the fact that when we use "pinch-zoom" to zoom the PDF file(in a PDFViewer) it is zoomed using the browser's zoom functionality and not the functionality provided by the PDFViewer component.
It will be a very useful feature if the built-in PDFViewer zoom functionality is used when the user zooms content with two fingers, on a mobile device
It will be great if we can have a very simple "out-of-the-box" way to add a Column Chooser in the toolbar, similar to the Search Feature.
Something like Syncfusion's column chooser here:
https://ej2.syncfusion.com/aspnetcore/Grid/ColumnChooser
This will help me significantly in my development effort and provide a much better experience for my paying customers.
I have hundreds of grid tables with different schemas, columns with MinScreenWidth, and hidden columns (depending on the availability of data).
On a page, it can have multiple grid tables that are dynamically generated.
I also use View Component to generate each grid table.
The current column menu isn't perfect because I want it to only act as a filter checkbox, not a menu where a user needs to click twice to access the filtering feature. (And my users need to use the filtering mechanism A LOT)
Thanks,
Luke
Hey,
It would be very useful if the TimePicker component would have a feature called something like "AutoFocusTime()". By default, when there is no value inside the TimePicker, the default focused time is "12:00 am", therefore the user has to scroll up all the way to the required time. With the feature above, it would be possible to enter a time which should be focused by default. For example "8:00 am" which is when most businesses start operating.
Now the question is, why not just putting in a default value. Well, in a form with lots of inputs, the user may not know anymore which values he entered and which inputs have a default value set and therefore submitting wrong data. If a input doesn't have a default value this mistake can be caught by setting a [Required] attribute. Threfore, the user has to enter a value and it will be guaranteed that all values where entered by him and it wasn't a default value which has been set.
See ticket id 1412837.
### Bug report
Starting with version 2024.4.1112, the built-in PDF export of the Spreadsheet throws a client-side error when the sheet contains an image.
### Reproduction of the problem
1) Open the Images demo: https://demos.telerik.com/aspnet-core/spreadsheet/images
2) Export the sheet to PDF.
3) An error is logged in the browser console: "Uncaught TypeError: n.Image is not a constructor".
The last working version is 2024.3.1015.
### Expected/desired behavior
PDF export must work as expected.
### Environment
* **Kendo UI version: 2024.4.1112
* **jQuery version: 3.7.1
* **Browser: [all]
Editor components throw AmbiguousMatchException when bound with models that have property shadowing in inheritance hierarchies.
new keyword(optional)
The components should handle property shadowing gracefully and generate the appropriate HTML input element.
AmbiguousMatchException is thrown when trying to bind the component to the shadowed property.
1699473
The Form component throws an InvalidOperationException when utilizing FormData within Razor Pages. This issue does not occur in ASP.NET MVC or standard ASP.NET Core applications. The issue appears to be linked to the following commit: 8cf517cf94dd5a13a8e8bd9f8f92db0193ea00e3.
The application throws an InvalidOperationException.
The application runs without any thrown exceptions.
1701697
I'm trying to use it for navigation in a section using Razor Pages. Having to expand using javascript is very distracting when the user goes from page to page. Below is the code to create a self-running page that demonstrates the issue:
@page
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>TestDrawer</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.2.514/styles/kendo.common-bootstrap.min.css" />
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.2.514/styles/kendo.bootstrap-v4.min.css" />
@* FontAwesome Pro css*@
<link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.8.2/css/all.css" integrity="sha384-xVVam1KS4+Qt2OrFa+VdRUoXygyKIuNWUUUBZYv+n27STsJ7oDOHJgfF0bNKLMJF" crossorigin="anonymous">
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"
asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
asp-fallback-test="window.jQuery"
crossorigin="anonymous"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=">
</script>
@* Place Kendo UI scripts after jQuery *@
<script src="https://kendo.cdn.telerik.com/2019.2.514/js/kendo.all.min.js"
asp-fallback-src="~/lib/kendo-ui/js/kendo.all.min.js"
asp-fallback-test="window.kendo">
</script>
<script src="https://kendo.cdn.telerik.com/2019.2.514/js/kendo.aspnetmvc.min.js"
asp-fallback-src="~/lib/kendo-ui/js/kendo.aspnetmvc.min.js"
asp-fallback-test="kendo.data.transports['aspnetmvc-ajax']">
</script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<style>
/* Root navigation */
#root-nav li,
#example-nav li {
list-style: none;
}
.root-nav-categories h3,
#example-nav h3 {
color: #000;
font-size: 14px;
line-height: 14px;
padding: 0.5em 0 0.5em 3.571em;
text-transform: uppercase;
}
#example-nav h3 {
padding: 1.7em 0 0.5em 3.4em;
}
#example-nav-bar {
border-top: 1px solid #e2e4e7;
}
#back-forward {
display: block;
position: relative;
color: #000;
font-size: 14px;
line-height: 15px;
font-weight: normal;
padding: 1em 3.5em;
/*vertical-align: middle;*/
}
#root-nav h4 a {
text-align: right;
}
.back-nav {
text-align: left;
}
.back-nav:before {
position: absolute;
top: 1em;
left: 1.2em;
}
.forward-nav {
text-align: left;
}
.forward-nav:before {
position: absolute;
display: block;
top: 1em;
right: 1.2em;
width: 14px;
height: 14px;
-ms-transform: rotate(180deg); /* IE 9 */
-webkit-transform: rotate(180deg); /* Chrome, Safari, Opera */
transform: rotate(180deg);
}
.root-nav-categories {
margin-top: 1.417em;
}
#root-nav,
#example-nav {
padding-bottom: 30px;
}
#root-nav li a,
#example-nav li a {
/*controls customer navigation icon and text size*/
/*font-size: 13px;*/
/*line-height: 13px;*/
color: #2d3e50;
display: block;
padding: 0.5em 0 0.5em .5em;
transition: all .2s ease;
}
#example-nav li .group {
font-size: 13px;
font-weight: bold;
line-height: 13px;
color: #2d3e50;
display: block;
padding: 1.5em 0 0.25em 3.7em;
transition: all .2s ease;
}
.flip {
transform: rotate( -180deg );
transition: transform 500ms ease;
}
.no-boarder {
border: none;
}
.k-drawer-container {
border: none;
}
/*Adjusts width of icon blocks in customer navigation*/
.k-drawer-wrapper.k-drawer-mini-mode .k-drawer-items {
width: 3.5rem;
}
#root-nav li a:hover,
#example-nav li a:hover,
#back-forward:hover {
color: #000;
text-decoration: none;
background-color: #e2e4e7;
}
.k-hover-enabled #root-nav li a:hover,
.k-hover-enabled #example-nav li a:hover {
background-color: transparent;
}
#example-nav .active {
background-color: #e2e4e7;
cursor: default;
}
</style>
@*<link rel="stylesheet" href="~/css/site.css" />*@
</head>
<body>
<div id="example-sidebar" class="border border-secondary">
@*<div id="nav-wrapper">*@
<div id="nav">
<div id="example-nav">
<kendo-drawer name="drawer" mode="push" on-hide="onHide" min position="left" swipe-to-open="true" template-id="template" class="no-boarder">
<mini enabled="true" />
</kendo-drawer>
</div>
</div>
@*NAVIGATION STACK*@
@*<a href="#">
<span class="fa-stack" style="vertical-align: top;">
<i class="far fa-circle fa-stack-2x"></i>
<i class="far fa-exchange fa-stack-1x"></i>
</span>
</a>*@
<a href="javascript:void(0);" onclick="toggleDrawer();" id="expand" title="Toggle Navigation">
<span class="fa-stack mb-2 ml-2">
<i class="far fa-circle fa-stack-2x"></i>
<i class="far fa-exchange fa-stack-1x"></i>
</span>
</a>
<script>
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
$(document).ready(function () {
var drawerInstance = $("#drawer").data().kendoDrawer;
var hideMenu = getCookie("HideCustomerMenu");
if (hideMenu == 'true') {
var arrowButton = $("#expand");
arrowButton.toggleClass('flip');
}
else {
drawerInstance.show();
}
});
function toggleDrawer() {
var drawerInstance = $("#drawer").data().kendoDrawer;
var drawerContainer = drawerInstance.drawerContainer;
var arrowButton = $("#expand");
if (drawerContainer.hasClass("k-drawer-expanded")) {
document.cookie = "HideCustomerMenu=true";
arrowButton.toggleClass('flip');
drawerInstance.hide();
} else {
document.cookie = "HideCustomerMenu=false";
arrowButton.toggleClass('flip');
drawerInstance.show();
}
}
</script>
<script id="template" type="text/x-kendo-template">
<ul class="menuBar list-unstyled">
<li id="test1"><a href="testdrawer"><i class="fa fa-user-circle fa-2x fa-fw mr-2" aria-hidden="true" title="Page 1"></i>Page 1</a></li>
<li id="test2"><a href="testdrawer" class="customer"><i class="fa fa-check fa-2x fa-fw mr-2" aria-hidden="true" title="Page 2"></i>Page 2</a></li>
<li id="test3"><a href="testdrawer" class="customer"><i class="fa fa-random fa-2x fa-fw mr-2" aria-hidden="true" title="Page 3"></i>Page 3</a></li>
<li id="test4"><a href="testdrawer" class="customer"><i class="fa fa-dollar-sign fa-2x fa-fw mr-2" aria-hidden="true" title="Page 4"></i>Page 4</a></li>
<li id="test5"><a href="testdrawer" class="customer"><i class="fa fa-paperclip fa-2x fa-fw fa-rotate-90 fa-flip-horizontal mr-2" aria-hidden="true" title="Page 5"></i>Page 5</a></li>
</ul>
</script>
</div>
<script>
function onHide(e) {
e.preventDefault();
}
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/js/bootstrap.bundle.min.js"
asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"
asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal"
crossorigin="anonymous"
integrity="sha256-E/V4cWE4qvAeO5MOhjtGtqDzPndRO1LBk8lJ/PR7CA4=">
</script>
</body>
</html>### Bug report
When selecting the "Print" option in the PDFViewer, a large right and bottom margin is applied regardless of whether the “Margins” option is set to "None" or "Minimum".
### Reproduction of the problem
1) Open the PDFViewer Overview demo: https://demos.telerik.com/kendo-ui/pdfviewer/index
2) Select "Print" to open the print dialog
3) Notice the unexpected right and bottom margin.
The issue occurs since version 2025.2.520.
### Expected/desired behavior
The extra margins must not be applied when opening the file for printing.
### Environment
* **Kendo UI version: 2025.2.520
* **jQuery version: 3.7.1
* **Browser: [all]
I am working on a grid that has 3 requirements that seem to cause the bug:
The combination of these 3 factors causes the grid not to load and results in a devtools console error. It's worth noting that removing any of the 3 bullet points above (e.g. NOT using sticky columns, NOT loading grid in tab control, or NOT have a remote FK column) allows the grid to load properly.
The error thrown in the DevTools console indicates that the grid's "tbody" property is not created at the time it is trying to call _setStickyStyles.
Before error is thrown (mouse is hovering over "tbody" property):
After error is thrown (look at console output):
I have upload a zip file containing a sample project that demonstrates the issue. When you launch the sample application, there are 2 links at the top of the page, "No Tabs" and "Tabs". The issue is reproducible on the "Tabs" page. Both pages use the same grid partial, but the "Tabs" page loads the partial through the tabstrip with a controller action. The "Tabs" page includes the 3 bullet points I indicated above that cause the problem.
The workaround I am using for now in my application is to NOT set the columns as sticky in my partial view. Instead, I set the sticky columns using the grid's API method "stickColumn" (https://www.telerik.com/kendo-jquery-ui/documentation/api/javascript/ui/grid/methods/stickcolumn) during the grid's dataBinding event (to ensure sticky columns are set AFTER grid initialization). This allows the grid to load and sets the sticky columns appropriately.
Thank you!
### Bug report
When the TreeList is set up for Popup editing, the "required" validation triggers immediately when the Popup form is opened.
### Reproduction of the problem
1) Create a Popup editable TreeList.
2) Add the DataAnnotation [Required] attribute to any of the Model properties.
3) Click the built-in "Add new record" command.
4) The editor of the required field is automatically focused and the validation triggers immediately.
The behavior can be observed in the TreeList Popup Editing demo: https://demos.telerik.com/aspnet-core/treelist/editing-popup
### Expected/desired behavior
The validation must trigger on blur, as in the jQuery demo.
### Environment
* **Telerik UI for ASP.NET Core version: 2025.2.520
* **Browser: [all]
The Form ignores the [Display(Name = "Value")] Data Annotation attribute:
telerik/kendo-ui-core#6503
The Email Label should read "Message":
https://netcorerepl.telerik.com/wzuDulvO14AtS2vC17
Consider the use of TextWriter async methods for the HTML Helpers, for example the WriteInitializationScript methods. In certain scenarios the use of the synchronous methods causes an exception: System.InvalidOperationException: Synchronous operations are disallowed. Call WriteAsync or set AllowSynchronousIO to true instead.
This can be resolved by explicitly enabling synchronous operations
services.Configure<IISServerOptions>(options =>
{
options.AllowSynchronousIO = true;
});though synchronous operations have been disabled by default at framework level as of .NET 3.0.