Completed
Last Updated: 19 Oct 2026 13:02 by ADMIN

Dear team,
Recently I've updated the kendo UI.
currently I'm using the this version.

 

Here I wrote the code for testing.

// cshtml code

@(Html.Kendo().Grid<Alliant.Controllers.ProductViewModel>() .Name("mixedSort") .Columns(columns => { columns.Bound(o => o.ProductName).Width(300); columns.Bound(p => p.UnitPrice).Width(300); columns.Bound(p => p.UnitsInStock).Width(300); columns.Bound(p => p.Discontinued).Width(300); columns.Bound(p => p.Group).Width(300); }) .Pageable(pageable => pageable.ButtonCount(5)) .Sortable(sortable => sortable .AllowUnsort(true) .SortMode(GridSortMode.Mixed) .ShowIndexes(true)) .DataSource(dataSource => dataSource .Ajax() .PageSize(5) .Read(read => read.Action("Sorting_Orders_Read", "Testing")) ) )

// Controller code

public ActionResult Sorting_Orders_Read([DataSourceRequest] DataSourceRequest request)
{
    List<ProductViewModel> lstData = new List<ProductViewModel>()
    {
        new ProductViewModel(){Group="A",ProductName="A1",UnitPrice=10,Discontinued=1,UnitsInStock=50},
        new ProductViewModel(){Group="A",ProductName="B1",UnitPrice=20,Discontinued=2,UnitsInStock=60},
        new ProductViewModel(){Group="B",ProductName="C1",UnitPrice=30,Discontinued=3,UnitsInStock=70},
        new ProductViewModel(){Group="C",ProductName="D1",UnitPrice=40,Discontinued=4,UnitsInStock=80},
        new ProductViewModel(){Group="C",ProductName="E1",UnitPrice=50,Discontinued=5,UnitsInStock=90},
    };

    return Json(lstData.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}

// Model

public class ProductViewModel
{
    public string ProductName { get; set; }
    public decimal UnitPrice { get; set; }
    public int UnitsInStock { get; set; }
    public decimal Discontinued { get; set; }
    public string Group { get; set; }
}

Could you please help me to figure out the issue?

I also checked the jquery code.

// Jquery code render by kendo

Completed
Last Updated: 19 Oct 2026 12:44 by ADMIN

When using the Telerik upgrade wizard I get a error while upgrading my web app:

 

An error occurred while running the wizard.

Error executing custom action Telerik.KendoUI.Mvc.VSX.Actions.MultiProjectUpdateReferencesAction: System.NullReferenceException: Object reference not set to an instance of an object.
   at Telerik.VSX.Internal.ProjectManagement.ProjectAssemblyReferenceBase.Equals(AssemblyWrap assemblyReference)
   at Telerik.VSX.ProjectConfiguration.ProjectReferenceManager.EnsureDifferentExistingReferenceRemoved(AssemblyWrap assemblyReference)
   at Telerik.VSX.ProjectConfiguration.ProjectReferenceManager.AddAssemblyReference(AssemblyWrap assemblyReference)
   at Telerik.VSX.ProjectConfigurators.ApplicationReferenceManager.AddReferences()
   at Telerik.VSX.ProjectConfigurators.ApplicationReferenceManager.UpdateReferences()
   at Telerik.VSX.Actions.UpdateReferencesAction.UpdateReferences(IProjectWrapUIComponents projectWrap)
   at Telerik.VSX.Actions.UpdateReferencesAction.Execute(WizardContext wizardContext, IPropertyDataDictionary arguments, IProjectWrap project)
   at Telerik.VSX.Actions.ProjectActionBase.Telerik.VSX.Actions.IProjectAction.Execute(IWizardContext wizardContext, IPropertyDataDictionary arguments, IProjectWrap projectWrap)
   at Telerik.VSX.Actions.MultiProjectActionBase`1.Execute(WizardContext wizardContext, IPropertyDataDictionary arguments)
   at Telerik.VSX.Actions.MultiProjectUpdateReferencesActionBase`1.Execute(WizardContext wizardContext, IPropertyDataDictionary arguments)
   at Telerik.VSX.WizardEngine.Actions.ActionBase.Telerik.WizardFramework.IAction.Execute(IWizardContext wizardContext, IPropertyDataDictionary arguments)
   at Telerik.VSX.WizardEngine.ActionManager.ExecActions()
Completed
Last Updated: 19 Oct 2026 12:40 by ADMIN
Created by: Antony
Comments: 2
Category: UI for ASP.NET MVC
Type: Feature Request
0
After upgrading to R3 2025, I lost hours chasing licensing DLL and key issues — unclear folder locations, version mismatches, and outdated docs. Please simplify or make this automatic.
Completed
Last Updated: 19 Oct 2026 12:15 by ADMIN

Hello,

On MAC, command+c cut instead of copy when selected texts are in a table. To duplicate, please follow these steps.

1. Go here: https://demos.telerik.com/aspnet-mvc/editor

2. Insert a new table.

3. Add some text into the table.

4. Select texts in the table.

5. Press command+c on MAC.

 

Please advise.

Thank you.

Completed
Last Updated: 19 Oct 2026 08:59 by ADMIN
Created by: Joe
Comments: 4
Category: Editor
Type: Bug Report
0

Hi,

I noticed in the editor that when you click the "View HTML" button, the popup window isn't sized properly and you must scroll down to see the Update and Cancel buttons. 

It can be seen on your demo page...

https://demos.telerik.com/aspnet-mvc/editor/all-tools

 

Thanks

Completed
Last Updated: 19 Oct 2026 08:48 by ADMIN

I have created this basic panelbar, in which expandall is set to false and one of the panelbars (i.e., General Info) is set to be expanded by default.

The problem is now with the second panelbar (Advanced Info), which is collapsed by default, but is not able to expand even after trying.

All that's  changing is expand and collapse arrow.

The same was working properly in earlier versions.

Hoping for your earliest response.

     @(Html.Kendo().PanelBar()
             .Name("Panelbar").Events(e => e.Error("onError").Expand("OnExpand").Collapse("OnCollapse"))
             .ExpandAll(false)
             .Items(panelbar =>
             {
                 panelbar.Add().Text("General Info")
             .Expanded(true)
             .Content(@<div class="container" style="margin:1%;width:auto"><p>HI</p></div>);
                 panelbar.Add().Text("Advanced Info")
             .Content(@<div class="container" style="margin:1%;width:auto"><p>HI</p></div>);  
             })
         )
 </div>

Completed
Last Updated: 19 Oct 2026 08:41 by ADMIN
Created by: Rahul
Comments: 3
Category: UI for ASP.NET MVC
Type: Bug Report
0

Hi Team,

1. Date column filter value shown full date instead of dd/MM/yyyy format. If I change the format  filter not working. 

Sample screenshot:

 

2. When I click on grid or some other area on the page selected filter text value like('Last month', 'Last week', 'Today', 'Yesterday') from custom date filter dropdown

 

Grid:

@(Html.Kendo().Grid<InteractiveReports.Model.ViewModel.UserReportResult>()
                                    .Name("userreport")
                                    .HtmlAttributes(new {  @class = "reportgrid" })
                                    //.ToolBar(toolBar => toolBar.Template(
                                    //"<a id='exportpdfdata' class='k-button k-button-icontext k-grid' href='#'><span class='k-icon k-i-pdf'></span>Export to PDF</a>" +
                                    //"<a class='k-button k-button-icontext k-grid-excel' href='#'><span class='k-icon k-i-excel'></span>Export to Excel</a>" +
                                    //"<a id='exportcsvdata' class='k-button k-button-icontext k-grid-csv' href='#'><span class='k-icon k-i-csv'></span>Export to CSV</a>"
                                    //))
                                    .Excel(excel => excel
                                        .AllPages(true)
                                        .FileName("User Report.xlsx")
                                        .Filterable(true)
                                    )
                                    .Columns(columns =>
                                    {

                                        columns.Bound(c => c.Team).Title("Team Name").Filterable(ftb => ftb.Multi(true).Cell(cell => cell.ShowOperators(false).Template("TeamDropDownList")))
                                          .Locked(true)
                                          .ClientTemplate("<a class = 'link-button' title='Team Report'  href='\\#' onclick=" + " onteamClick('#=escape(Team)#');>" + "#= Team != null && Team != '(Blanks)' ? Team : '' #" + "</a>")
                                          .Width(200);

                                        //columns.Bound(c => c.Team_type).Title("Team type").Filterable(ftb => ftb.Multi(true)).Width(200);
                                        columns.Bound(c => c.Team_type).Title("Team type").Filterable(ftb => ftb.Multi(true).Cell(cell => cell.ShowOperators(false).Template("Team_typeDropDownList")))
                                         .Width(200).ClientTemplate("#= (Team_type == '(Blanks)') ? '' : Team_type #");
                                        columns.Bound(c => c.Username).Title("Username")
                                         .Width(200).ClientTemplate("#= (Username == '(Blanks)') ? '' : Username #");
                                        columns.Bound(c => c.Title).Title("Title").Width(200).ClientTemplate("#= (Title == '(Blanks)')? '' : Title #");
                                        columns.Bound(c => c.First_name).Title("First Name").Width(200).ClientTemplate("#= (First_name == '(Blanks)') ? '' : First_name #");
                                        columns.Bound(c => c.Last_name).Title("Last Name").Width(200).ClientTemplate("#= (Last_name == '(Blanks)') ? '' : Last_name #");
                                        columns.Bound(c => c.Email_address).Title("Email Address")
                                         .Width(200).ClientTemplate("#= (Email_address == '(Blanks)') ? '' : Email_address #");
                                        columns.Bound(c => c.Company).Title("Company").Filterable(ftb => ftb.Multi(true).Cell(cell => cell.ShowOperators(false).Template("CompanyDropDownList")))
                                        .Width(200).ClientTemplate("#= (Company == '(Blanks)') ? '' : Company #");

                                        columns.Bound(c => c.User_status).Title("User Status").Filterable(ftb => ftb.Multi(true).Cell(cell => cell.ShowOperators(false).Template("User_statusDropDownList")))
                                         .Width(200).ClientTemplate("#= (User_status == '(Blanks)') ? '' : User_status #");
                                        columns.Bound(c => c.Total_time_logged_in).Title("Total Time Logged In").Width(200)
                                        .ClientTemplate("#= (Total_time_logged_in == '(Blanks)') ? '' : Total_time_logged_in #");
                                        columns.Bound(c => c.Last_login_date).Title("Last Login Date").Width(200)
                                        //.ClientTemplate("#= Last_login_date != null ? Last_login_date : '' #")
                                        .ClientTemplate("#= Last_login_date != null ? kendo.toString(Last_login_date, 'dd/MM/yyyy') : '' #")
                                        .Format("{0:dd/MM/yyyy}")
                                        //.Filterable(ftb => ftb.Cell(cell => cell.Template("datePickerFilter")));
                                        .Filterable(f => f.Cell(c => c.ShowOperators(false).Template("dateFilterCustomization")));
                                        columns.Bound(c => c.Last_login_time).Title("Last Login Time").Width(200)
                                        .ClientTemplate("#= (Last_login_time == '(Blanks)') ? '' : Last_login_time #");
                                        //.Filterable(f => f.Cell(c => c.ShowOperators(false).Template("timeFilterCustomization")));



                                        columns.Bound(c => c.No_of_Index_Actions).Title("No. of Index Actions").Width(200)
                                       .ClientTemplate("<a class = 'link-button' title='Index Report' href='\\#' onclick=" + " onidxActionClick('#=escape(UserId)#');>" + "#= No_of_Index_Actions != null ? No_of_Index_Actions : '' #" + "</a>")
                                           .Filterable(ftb => ftb
                                          .Cell(cell => cell
                                          .Operator("eq")
                                          .ShowOperators(false)
                                          .Template("integerFilter_nodecimal")
                                      ));                                    })
                                     .NoRecords(n => n.Template("NO DATA TO DISPLAY"))
                                     .Events(events => events.Filter("onFiltering"))
                                    .Resizable(resize => resize.Columns(true))
                                    .Reorderable(reorder => reorder.Columns(true))
                                    .ColumnMenu()
                                    .Sortable()
                                    .Scrollable()
                                    .Filterable(ftb => ftb.Mode(GridFilterMode.Row))
                                    .Events(events => events.Filter("onFilter"))
                                    .Pageable(pageable => pageable
                                        .Refresh(true)
                                        .PageSizes(true)
                                        .PageSizes(new[] { 50, 100, 150 })
                                        )
                                    .DataSource(dataSource => dataSource
                                        .Ajax()
                                        .ServerOperation(false)
                                        .Read(read => read.Action("GetUserReportData", "UserReport").Data("passParameter"))
                                        .PageSize(50).Events(x => x.Error("onGridError"))
                                )
)

               

 

Customized Dropdown filter for date column:

var field = {};
var filter = true;
var dateformate = "DD/MM/YYYY";
const formatter = new Intl.DateTimeFormat(['ban', 'id'], { day: '2-digit', month: '2-digit', year: 'numeric' });

function dateFilterCustomization(args) {
    var date = new Date();
    var yesterday = new Date(date);
    yesterday.setDate(date.getDate() - 1);
    args.element.kendoComboBox({
        dataSource: [
            { text: "Today", value: "1" },
            { text: "Yesterday", value: "2" },
            { text: "This Week", value: "3" },
            { text: "Last Week", value: "4" },
            { text: "Last Month", value: "5" },
            { text: "Since Live", value: "6" },
            { text: "Custom Date range", value: "7" },



        ],
        placeholder: "Select",
        dataTextField: "text",
        dataValueField: "value",
        dataTypeField: "",
        valuePrimitive: true,
        value: 7,
        open: function (e) {
            var grid = $('.reportgrid').data("kendoGrid");
            var colname = e.sender.element[0].title;
            field = getColName(grid.columns, colname);
            if (grid.dataSource.filter() != undefined) {
                var filters = checkForExistingDates(grid);
                if (filters != undefined && filters.length > 0) {
                    var result = jQuery.grep(filters, function (item) { return item.operator == "gte" })
                    if (result != undefined && result.length > 0) {
                        $("#startDate").val(formatter.format(result[0].value));
                    }
                    else {
                        $("#startDate").val('');
                    }
                    result = jQuery.grep(filters, function (item) { return item.operator == "lte" })
                    if (result != undefined && result.length > 0) {
                        $("#endDate").val(formatter.format(result[0].value));
                    } else {
                        $("#endDate").val('');
                    }
                }
                else {
                    $("#startDate").val('');
                    $("#endDate").val('');
                }
            } else {
                $("#startDate").val('');
                $("#endDate").val('');
            }
        },
        select: function (e) {           
            e.preventDefault();

            var dataItem = e.dataItem;
            var grid = $('.reportgrid').data("kendoGrid");
            var colname = e.sender.element[0].title;
            field = getColName(grid.columns, colname);
            var vm = this;
            var text = dataItem.text;
            flag = parseInt(dataItem.value);
            if (flag == 1) {
                filterSingleDate(date);
            } else if (flag == 2) {
                filterSingleDate(yesterday);
            } else if (flag == 3) {
                getThisWeekData();
            } else if (flag == 4) {
                getPastWeekData();
            } else if (flag == 5) {
                getPastMonthData();
            } else if (flag == 6) {
                removeFilter(grid);
            }
            else if (flag == 7) {

                $(".daterangemodel").modal('toggle');

            }
            vm.text(text);
        }
    });
}

function startOfLastWeek() {
    var today = moment();
    var daystoLastMonday = 0 - (1 - today.isoWeekday()) + 7;
    var lastMonday = today.subtract('days', daystoLastMonday);
    return lastMonday;
}

function EndOfLastWeek() {
    var lastMonday = startOfLastWeek();
    var lastSunday = lastMonday.add('days', 6);
    return lastSunday;
}

function getPastWeekData() {
    var startDate = startOfLastWeek();
    var endDate = EndOfLastWeek();
    filterData(startDate, endDate, field);
}

function getThisWeekData() {
    var date = new Date();
    var startDate = startOfThisWeek(date);
    var endDate = endOfThisWeek(date);
    filterData(startDate, endDate, field);
}

Script:

function onFilter(e) {       

    if (e.filter && e.filter.filters[0].field == "Last_login_date" || e.filter && e.filter.filters[0].field == "Creation_date" || e.filter && e.filter.filters[0].field == "Invitation_date" || e.filter && e.filter.filters[0].field == "Registration_date") {
        e.filter.filters[0].operator = function (item, value) {
            var itemValue = new Date(item);
            var userValue = new Date(value);
            var condition = itemValue.getFullYear() == userValue.getFullYear()
                && itemValue.getMonth() == userValue.getMonth()
                && itemValue.getDate() == userValue.getDate();
            return condition;
        };
    }
}

 

Model:

public class UserReportResult
{
    public string Team { get; set; }
    public string Team_type { get; set; }      
    public string Username { get; set; }
    public string Title { get; set; }
    public string First_name { get; set; }
    public string Last_name { get; set; } 

public DateTime ? Last_login_date { get; set; }

}

 

Can any admin tell me what is wrong??

Completed
Last Updated: 19 Oct 2026 08:34 by ADMIN

After i upgrade my ASP.NET MVC project to Telrik UI version 2024.2.514, many component in my web app in smaller than before upgrade. Some form are broken and unable to use. Do you have any idea causes this issue?

I'm looking forward to your answser. Thanks for your support.

Completed
Last Updated: 19 Oct 2026 07:46 by ADMIN
Created by: Sujeet
Comments: 3
Category: PDFViewer
Type: Bug Report
0

We are using Kendo MVC version: 2021.3.1109.545

When we tried to open the PDF file from the application using PDF viewer, we can see the fonts getting blurred and fuzzy as shown below.

 

Completed
Last Updated: 19 Oct 2026 07:43 by ADMIN

I'm trying to modify the filter ui with a custom function that i passed to the kendo UI fuction.

here's my code :

@using Alstom_penali.Models.database;
@{
    ViewBag.Title = "Tutte le penali";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<div class="container-fluid">
    <div class="row">

        <h3>@ViewBag.Title</h3>

        @*sotto permessi*@
        @if (ViewBag.CanUploadFilePenali == string.Empty)
        {
            @(Html.Kendo().Upload()
                .Name("up_supplychain")
                .Messages(y => y.Select("Upload excel penali").UploadSelectedFiles("Avvia"))
                .HtmlAttributes(new { accept = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel" })
                .Multiple(false)
                .ShowFileList(false)
                .Events(e => e.Success("onUploadSuccess"))
                .Async(a => a
                    .Save("SuppChainExcelRead", "Summary", new { operation = "save" })
                    .Remove("SuppChainExcelRead", "Summary", new { operation = "remove" })
                    .AutoUpload(false)
                )
            )
            <br />
        }




        @if (ViewBag.CanViewSummaryAll == string.Empty)
        {
            @(Html.Kendo().Grid<PenaliModel>
                ()
                .Name("grid")
                .Events(e => e.ExcelExport("excelExport"))
                .Columns(
                columns =>
                {

                    columns.Bound(c => c.PO_Number).Title("PO Number").Width(125).Locked(true);
                    columns.Bound(c => c.Pos).Width(100).Locked(true);
                    columns.Bound(c => c.ddl_stato).Title("STATO").Width(180).Filterable(false).Sortable(false).Locked(true).ClientTemplate("#=ddl_stato.Text#").EditorTemplateName("DropDownEditor");
                    columns.Bound(c => c.ddl_Responsabilita).Title("Responsabilità").Width(200).Filterable(false).Sortable(false).Locked(false).ClientTemplate("#=descriptionTemplate(data) #").EditorTemplateName("DropDownEditorResponsabilita");
                    columns.Bound(c => c.isConQ).Title("Tipo").Width(125)
                        .Filterable(filter=> filter.UI("isConQRadioFilter"))
                        .Sortable(false)
                        .Locked(false)
                        .ClientTemplate("#=typeTemplate(data) #");

                    columns.Command(command => { command.Edit().Text("Modifica"); }).Width(100);

                    columns.Bound(c => c.Progressivo_Conferma).Width(150).Title("CONQ Report");
                    columns.Bound(c => c.DataInvioConferma).Title("Data Invio CONQ").Width(200).Format("{0:dd/MM/yyyy HH:mm}");

                    columns.Bound(c => c.NCR).Width(100);
                    columns.Bound(c => c.SupplierName).Title("Supplier Name").Width(200).Format("{0:n2}");
                    columns.Bound(c => c.ProgettoSito).Title("MBTO").Width(150);
                    columns.Bound(c => c.ImportoDaAddebitare).Title("Importo").Width(100).Format("{0:n2}");
                    columns.Bound(c => c.Importo_Negoziato).Title("Importo Negoziato").Width(150).Format("{0:n2}");
                    columns.Bound(c => c.Quality_Owner).Title("Quality Owner").Width(200);
                    columns.Bound(c => c.Progressivo_Avviso).Width(150).Title("ID_CLAIM");

                    columns.Bound(c => c.DataInvioAvviso).Title("Data Invio CLAIM ").Width(150).Format("{0:dd/MM/yyyy HH:mm}");
                    columns.Bound(c => c.DataInvioPenale).Title("Data Invio penale").Width(150).Format("{0:dd/MM/yyyy HH:mm}");
                    columns.Bound(c => c.NotaDebitoNr).Title("Nota debito").Width(125);
                    columns.Bound(c => c.DataInvioStorno).Title("Data Invio storno").Width(150).Format("{0:dd/MM/yyyy HH:mm}");
                    columns.Bound(c => c.NotaCreditoNr).Title("Nota credito").Width(125);

                    columns.Bound(c => c.Id);

                    columns.Bound(c => c.WBS).Width(200);
                    columns.Bound(c => c.Progressivo).Width(150);
                    columns.Bound(c => c.YearMonth).Width(150);

                    columns.Bound(c => c.Material).Width(200);
                    columns.Bound(c => c.Description).Width(300).ClientTemplate("<span class='ellipsis'>#:Description#</span>");
                    columns.Bound(c => c.Del_Note_Nr).Width(150);
                    columns.Bound(c => c.EmailProcurement).Title("Material planner").Width(200);

                    columns.Bound(c => c.TotalOrderQty).Width(150);
                    columns.Bound(c => c.ReceivedQtyInDelay).Width(150);
                    columns.Bound(c => c.OrderValue).Width(150).Format("{0:n2}");
                    columns.Bound(c => c.Stat_Del_Date).Width(150).Format("{0:dd/MM/yyyy HH:mm}");
                    columns.Bound(c => c.Del_Date).Width(150).Format("{0:dd/MM/yyyy HH:mm}");
                    columns.Bound(c => c.WeeksOfDelay).Width(150);
                    columns.Bound(c => c.ReceivedValue).Width(150);
                    columns.Bound(c => c.DataCreazione).Width(150).Format("{0:dd/MM/yyyy HH:mm}");
                    columns.Bound(c => c.DataModifica).Width(150).Format("{0:dd/MM/yyyy HH:mm}");


                    columns.Command(command => { command.Destroy().Text("Elimina"); }).Width(100);

                })
                .HtmlAttributes(new { style = "height: 500px;" })
                .ToolBar(tools => tools.Excel().Text("Esporta excel"))
                .Excel(excel => excel.AllPages(true).FileName("Penali.xlsx"))
                .Editable(editable =>
                {
                    editable.Mode(GridEditMode.InLine);
                    editable.ConfirmDelete("Sei sicuro?");
                })
                .Scrollable()
                .Groupable()
                .Filterable(filterable => filterable
                    .Operators(operators => operators
                    .ForString(str => str.Clear()
                    .IsEqualTo("E' uguale a").StartsWith("Inizia con").EndsWith("Finisce con")
                    .Contains("Contiene").DoesNotContain("Non contiene"))
                    .ForDate(dt => dt.Clear()
                    .IsGreaterThanOrEqualTo("Dopo o uguale al").IsLessThanOrEqualTo("Prima o uguale del"))

                ))
                .Sortable()
                .Selectable()
                .Pageable(pageable => pageable
                .Refresh(true)
                .PageSizes(true)
                )
                .DataSource(dataSource => dataSource
                .Ajax()
                .Model(model =>
                {

                    model.Id(p => p.Id);
                    model.Field(p => p.DataInvioAvviso).Editable(false);
                    model.Field(p => p.DataInvioPenale).Editable(false);
                    model.Field(p => p.DataInvioStorno).Editable(false);
                    model.Field(p => p.DataCreazione).Editable(false);
                    model.Field(p => p.DataModifica).Editable(false);
                    model.Field(p => p.Del_Date).Editable(false);
                    model.Field(p => p.Del_Note_Nr).Editable(false);
                    model.Field(p => p.Description).Editable(false);
                    model.Field(p => p.Det_Selected).Editable(false);
                    model.Field(p => p.EmailProcurement).Editable(false);
                    model.Field(p => p.ImportoDaAddebitare).Editable(false);
                    model.Field(p => p.Importo_Negoziato).Editable(false);
                    model.Field(p => p.Material).Editable(false);
                    model.Field(p => p.NotaCreditoNr).Editable(false);
                    model.Field(p => p.NotaDebitoNr).Editable(false);
                    model.Field(p => p.OrderValue).Editable(false);
                    model.Field(p => p.PO_Number).Editable(false);
                    model.Field(p => p.Pos).Editable(false);
                    model.Field(p => p.ProgettoSito).Editable(false);
                    model.Field(p => p.Progressivo).Editable(false);
                    model.Field(p => p.ReceivedQtyInDelay).Editable(false);
                    model.Field(p => p.ReceivedValue).Editable(false);
                    model.Field(p => p.Stat_Del_Date).Editable(false);
                    model.Field(p => p.SupplierName).Editable(false);
                    model.Field(p => p.TotalOrderQty).Editable(false);
                    model.Field(p => p.WBS).Editable(false);
                    model.Field(p => p.WeeksOfDelay).Editable(false);
                    model.Field(p => p.YearMonth).Editable(false);
                    model.Field(p => p.NCR).Editable(false);
                    model.Field(p => p.Progressivo_Avviso).Editable(false);
                    model.Field(p => p.Progressivo_Conferma).Editable(false);
                    model.Field(p => p.Quality_Owner).Editable(false);

                    model.Field(p => p.ddl_stato).DefaultValue(new SelectListItem() { }); //unico editabile
                    model.Field(p => p.ddl_Responsabilita).DefaultValue(new SelectListItem() { });
                    model.Field(p => p.isConQ).Editable(false);
                    model.Field(p => p.DataInvioConferma).Editable(false);
                })
                .Events(events =>
                {

                    events.RequestEnd("onRequestEnd");
                    events.Error("onGridError");

                })
                .Read(read => read.Action("Penali_List", "Summary"))
                .Update(update => update.Action("Penali_Update", "Summary"))
                .Destroy(update => update.Action("Penali_Destroy", "Summary"))

                .PageSize(10)
                )
    )
        }
        else
        {
            <p style="font-size:16px;color:red">@ViewBag.CanViewSummaryAll</p>
        }
    </div>
</div>


<div id="Pop_up" style="display:none">
    <p>Seleziona di chi sarà la responsabilità di questa penale</p>
</div>
@section scripts {
    <script type="text/javascript">


        function isConQRadioFilter(element) {
            // Create radio buttons for filtering boolean values
            var html = `
            <label>
                <input type="radio" name="isConQFilter" value="true" /> CONQ
            </label>
            <label>
                <input type="radio" name="isConQFilter" value="false" /> Ritardo
            </label>
        `;
            // Append the radio button HTML to the filter container
            element.append(html);

            // Trigger filtering when a radio button is clicked
            element.find("input[type=radio]").change(function () {
                var filterValue = $(this).val();
                var grid = $("#grid").data("kendoGrid");
                grid.dataSource.filter({
                    field: "isConQ",
                    operator: "eq",
                    value: filterValue === "true" // Convert the value to a boolean
                });
            });
        }

        function onEdit(e) {


        }

        function excelExport(e) {
            var sheet = e.workbook.sheets[0];
            var template2 = kendo.template(e.sender.columns[2].template);
            var template3 = kendo.template(e.sender.columns[3].template);

            var data = e.data;
            for (var i = 0; i < data.length; i++) {
                sheet.rows[i + 1].cells[2].value = template2(data[i]);
                sheet.rows[i + 1].cells[3].value = template3(data[i]);
                if (data[i].isConQ) {
                    sheet.rows[i + 1].cells[4].value = "CONQ";
                } else {
                    sheet.rows[i + 1].cells[4].value = "Ritardo";
                }

            }
        }



        function descriptionTemplate(data) {


            if ((data.ddl_stato.Text == "INLAVORAZIONE" || data.ddl_stato.Text == "NEGOZIATA")  && data.ddl_Responsabilita.Text != null) {
                return data.ddl_Responsabilita.Text;
            }
            else {
                return "";
            }
        }


        function typeTemplate(data) {

            var html;
            if (data.isConQ) {
                html = kendo.format(
                    "<a class=\"k-button\" href='" + '@Url.Action("Create_Penale_CONQ", "Summary")' + "/" + data.Id + " '>CONQ</a>  ",

                );
            } else {
                  html = kendo.format(
                    "Ritardo ",

                );
            }
            return html;
        }

        //(function () {
        //    isConQFilter("ciao");
        //})();

            function isConQFilter(element)
            {
                console.log("isConQFilter called");
                element.kendoDropDownList({
                    dataSource: [
                        { text: "CONQ", value: true },
                        { text: "Ritardo", value: false }
                    ],
                    dataTextField: "text",
                    dataValueField: "value",
                    optionLabel: "-- Seleziona Tipo --",
                    valuePrimitive: true
                });
            }


            //function isConQFilter(element) {
            //    debugger;
            //    console.log("isConQFilter called");

            //}
    </script>
    }
    <style>
        .ellipsis {
            overflow: hidden;
            text-overflow: ellipsis;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
        }


        .k-grid-header .k-header {
            height: 20px;
            padding: 0;
        }

        .k-grid tbody tr {
            line-height: 14px;
        }

        .k-grid tbody td {
            padding: 1px;
        }
    </style>


the coulm i'm talking about is the "isConq" one, i would like to show "Conq" or "Ritardo" instead of "è vero" or "è falso".

Following the doc, i'm calling the "isConQFilter" js function, but it is never triggered by the kendo.

Where am i wronged?

If you need something else, please, tell me.

I'm using kendo mvc grid version 2016.

 

Completed
Last Updated: 19 Oct 2026 07:41 by ADMIN

I use the ASP.NET MVC widget code to add a ButtonGroup to a view. The ButtonGroup configuration has 2 buttons, has selection = many, and one of the buttons is selected. 


            @(Html.Kendo().ButtonGroup()
                .Name("select-data-source-filters")
                .HtmlAttributes(new { @class = "", @style = "text-align: center; flex-flow: row;"})
                .Selection("multiple")
                .Items(t =>
                {
                    t.Add().Text("Include Default Product Scenarios").Selected(false).HtmlAttributes(new { @id = "databaseItems", @class= "mb-2 k-ml-2.5" });
                    t.Add().Text("Include User Defined Product Scenarios").Selected(true).HtmlAttributes(new { @id = "userDefinedItems", @class = "mb-2 ml-2" });
                })
            )

 

In an event handler for a different widget (e.g., Grid), I programmatically select the button that is not yet selected. This should cause both buttons to now be selected. However, the act of getting a reference to the button group widget object causes the selection property to be reset to "single". The workaround is to manually reset the selection option to "multiple". 

                        let buttonGroupWidget = $("#select-data-source-filters").kendoButtonGroup().data("kendoButtonGroup");
                        if (debugLevel > 0) {
                            console.log(".... buttonGroupWidget = " + buttonGroupWidget + " : ", buttonGroupWidget);
                            console.log(".... (initial) buttonGroupWidget.selectedIndices = " + buttonGroupWidget.selectedIndices + " : ", buttonGroupWidget.selectedIndices);
                        }
                        if (buttonGroupWidget !== null && buttonGroupWidget !== undefined) {
                            buttonGroupWidget.options.selection = "multiple";//workaround for a bug in 2024Q3 that resets selection to single when get reference to the kendo widget
                            buttonGroupWidget.select(0);
                            buttonGroupWidget.trigger("select");
                            console.log(".... (updated) buttonGroupWidget.selectedIndices = " + buttonGroupWidget.selectedIndices + " : ", buttonGroupWidget.selectedIndices);
                        }

Completed
Last Updated: 16 Oct 2026 14:12 by ADMIN
Created by: John
Comments: 7
Category: Grid
Type: Bug Report
0

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.

 

Completed
Last Updated: 16 Oct 2026 13:56 by ADMIN
Hello Team,

Here, I am Using a Kendo MVC Grid to show Customers data. I had applied multiple columns with anchor tag for redirection from one grid to another Page. Some how First two rows only by default showing different color than other rows. Actually First two rows by default showing :hover effect as I checked it in Inspect mode and other rows showing actual color which is applied in anchor tag link colors.

Completed
Last Updated: 07 Oct 2026 08:42 by ADMIN
Release 2026 Q4 (Oct)

Bug report

Reproduction of the problem

Go to this Progress Telerik REPL for ASP.NET Core.

Current behavior

(optional)
Provide additional information if the steps for reproducing the faulty behavior are not sufficient to describe the issue.

Expected/desired behavior

Like the Kendo UI for jQuery version, null should be a valid selection.

TicketID:

1718054

Environment

Kendo UI version: 2026.3.811
jQuery version: 4.0.0
Browser: all

Completed
Last Updated: 07 Oct 2026 08:42 by ADMIN
Release 2026 Q4 (Oct)
Created by: Robert
Comments: 0
Category: UI for ASP.NET MVC
Type: Bug Report
0

Bug report

The Telerik.UI.for.AspNet.Mvc5 2026.3.811 package lists Telerik.SvgIcons and Telerik.FontIcons version 4.9.2 as dependencies in its .nuspec file.

However, compiling a project that references Telerik.UI.for.AspNet.Mvc5 results in package version conflicts for both packages.

The rquired version of the Telerik.SvgIcons and Telerik.FontIcons is 4.11.0

Expected/desired behavior

There should be no version mismtach for the Kendo.MVC.dll dependencies.

Environment

  • Kendo/Telerik version: 2026.3.811
Completed
Last Updated: 07 Oct 2026 08:42 by ADMIN
Release 2026 Q4 (Oct)
Created by: Nikita
Comments: 0
Category: Grid
Type: Bug Report
0

Bug report

Reproduction of the problem

Create a Grid using the Telerik UI for ASP.NET MVC wrappers and add .Size(ComponentSize.Medium) to the configuration.

Current behavior

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.

Expected/desired behavior

The behavior should be consistent and the k-grid-md class should be applied also when using Telerik UI for ASP.NET MVC wrappers

Environment

  • Kendo/Telerik version: 2026.3.811
  • Browser: [all ]
Completed
Last Updated: 06 Oct 2026 10:59 by ADMIN

First of all, we are using the 'Telerik UI for ASP.NET Core' product. We would like to ask you about the PivotGrid component, since we are having a strange behavior with the application of filters on the dimensions once the PivotGrid shows the data.

The use case is as follows:

  1. We configure the PivotGrid applying two dimensions, one in a column (‘family_name’) and the other in rows (‘bc_name’) and select a measure (‘Amount’), and the PivotGrid is generated as expected. (see Case1.png)
  2. We apply one filter to the columns, for example ‘family_name’ contains ‘OJOS’, and the PivotGrid is refreshed showing only the data filtered as expected. (see Case2.png and Case3.png)
  3. We apply another filter to the rows, for example ‘bc_name’ contains ‘Barrios’, and the PivotGrid is refreshed showing only the data filtered by that filter, but no for the combination of the filter of ‘family_name’ applied before. (see Case4.png and Case5.png)

As you can see, the behaviour is strange, because we we can’t see the data with the application of both filters in combination.

I also included the code where we build the PivotGrid, if that can help to see the problem. (see Code.txt)
Hope that you can help us, because that is a real inconvenient for us.

 Thanks in advance.

 

Completed
Last Updated: 25 Sep 2026 15:34 by ADMIN
Created by: Developer
Comments: 1
Category: Grid
Type: Bug Report
1

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;
}

Completed
Last Updated: 25 Sep 2026 15:25 by ADMIN

Bug Report

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.  

Reproduction of the problem

  1. Visit this Kendo UI Dojo.
  2. Scroll to 40.
  3. Click the Reset Filter button.

Current Behavior

The first page is only accessible, and when scrolling down the reads continue to occur.

Expected/desired behavior

The endless scrolling settings should not interfere with manual dataSource operations.

Workarounds

  1. Solution when read is called, the Kendo UI Grid will reset to its original state(dojo). 
        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);
        }
  2. Solution which overrides the data(dojo).
        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();
        }

Environment

  • Kendo UI version: 2020.1.114
Completed
Last Updated: 25 Sep 2026 13:18 by ADMIN
Created by: Peter
Comments: 2
Category: Window
Type: Bug Report
0

Hello,

I'd like to report a problem with the window component. It's only related to Google Chrome and occurred after the last Chrome update. Windows and Mac alike.

When dragging a non-modal window it does not move smoothly, but in a jerking manner. There is no problem with modal windows.

I've enclosed a screen video. The first windows is moving perfectly, the second erratically. Of course, this is not a major issue, but the client still complains.

This is the configuration. .Draggable(true) does not change the behavior.
@(Html.Kendo().Window()
      .Deferred()
      .Name("insert-products-window")
      .Title("Placering produktdokument")
      .LoadContentFrom("LoadInsertProductsDialog", "Catalog")
      .Events(e => e.Error("utilities.handleWindowError"))
      .Events(e => e.Close("insertProducts.onClose"))
      .Events(e => e.Activate("insertProducts.wireToolbarEvents"))
      .HtmlAttributes(new {style = "padding: 0;"})
      .Scrollable(false)
      .Draggable(d => d.Containment(Model.IsPhone ? "" : ".body-content"))
      .Modal(false)
      .Width(Model.IsPhone ? 0 : 700)
      .Height(Model.IsPhone ? 0 : 450)
      .Resizable(r => r.MinWidth(300))
      .Resizable(r => r.MinHeight(260))
      .Visible(false)
      .Actions(a => a.Custom("help").Minimize().Close())
      )

1 2 3 4 5 6