Completed
Last Updated: 14 Sep 2020 08:05 by ADMIN
Release 2020.R3

Bug report
PersistSelection does not work when GroupPaging is enabled. Error is thrown: "Cannot read property 'Id' of undefined"

Reproduction of the problem

Dojo: https://dojo.telerik.com/aKixuZAy

Expected/desired behavior
No error shall be thrown and rows should be persisted when GroupPaging is enabled

Environment
Kendo UI version: 2020.2.617
Browser: [all]

Completed
Last Updated: 10 Sep 2020 14:52 by ADMIN
Release 2020.R3

Bug Report

When the grid is bound to an external dataSource, the AutoBind(false) setting is not serialized and as a result, the grid binds immediately

Reproduction

    @(Html.Kendo().DataSource<Kendo.Mvc.Examples.Models.CustomerViewModel>()
    .Name("myDs")
    .Ajax(r=>r.Read(a=>a.Action("Customers_Read", "Grid")))
    )
    @(Html.Kendo().Grid<Kendo.Mvc.Examples.Models.CustomerViewModel>()
        .Name("grid")
        .AutoBind(false)
        .DataSource("myDs")
        /* other settings */
    )

Current Behavior

The grid is bound, the AutoBind false is not serialized at all

 

Expected Behavior

The grid should not bind initially.

Environment

Kendo UI version: 2020.2.617

Completed
Last Updated: 23 Jun 2020 13:41 by ADMIN
Release 2020.R1.SP1

Hi, with the latest version of kendo ui on existing hundred grids when I try to filter for a column I get an error like:

This kind of grid worked perfect on previous versions.

Uncaught TypeError: Cannot read property 'length' of undefined

    at init._eachRenderedMenuItem (kendo.all.js:52792)
    at init._setMenuItemsVisibility (kendo.all.js:52747)
    at init._updateMenuItems (kendo.all.js:52742)
    at init.open (kendo.all.js:52609)
    at init.trigger (kendo.all.js:164)
    at init._triggerEvent (kendo.all.js:51935)
    at kendo.all.js:51154
_eachRenderedMenuItem @ kendo.all.js:52792
_setMenuItemsVisibility @ kendo.all.js:52747
_updateMenuItems @ kendo.all.js:52742
open @ kendo.all.js:52609
trigger @ kendo.all.js:164
_triggerEvent @ kendo.all.js:51935
(anonymous) @ kendo.all.js:51154
setTimeout (async)
(anonymous) @ kendo.all.js:51143
each @ jquery-3.4.1.min.js:2
each @ jquery-3.4.1.min.js:2
open @ kendo.all.js:51140
_mouseenter @ kendo.all.js:51465
i @ jquery-3.4.1.min.js:2
handle @ jquery-3.4.1.min.js:2
dispatch @ jquery-3.4.1.min.js:2
v.handle @ jquery-3.4.1.min.js:2

 

 

@(Html.Kendo().Grid<Contract>()
                  .Name(GridId)
                  .DataSource(dataSource => dataSource
                      .Ajax() // Specify that ajax binding is used
                      .PageSize(80)
                      .Events(events => events.Error("common.gridErrorHandler").RequestStart("waitWindow.show").RequestEnd("waitWindow.hide"))
                      .Model(model => model.Id(al => al.ContractId))
                      .Read(read => read.Action("ContractsRead", "Contracts"))
                  )
                  .Events(events => events.Change("onRowClick").DataBound("common.onDataBound"))
                  .ToolBar(toolbar =>
                  {
                      toolbar.Template(@<text>
                          <div style="display: inline-block;">Select a service to manage Cost per Office</div>
                    </text>);
                        })
                              .Columns(columns =>
                              {
                                  columns.Bound(p => p.ContractId).Width(45).Title("Reference #").Hidden(true);
                                  columns.Bound(p => p.Name).Title("Service").Width(100);
                                  columns.Bound(p => p.ExpirationDate).Width(60).Format(RequestHelper.GetDateTimeFormat(Request));
                                  columns.Bound(p => p.BillingCycle.Name).Width(53);
                                  columns.Bound(p => p.Value).Title("Amount").Width(75).Format("$ {0:n5}").HeaderHtmlAttributes(new { style = "text-align: right;" }).HtmlAttributes(new { style = "text-align: right;font-weight: bold;" });
                              })
                              .NoRecords(PageResources.lblGridNoRecords)
                              .Filterable()
                              .Selectable(s => s.Mode(GridSelectionMode.Single))
                              .Scrollable(s => s.Virtual(true).Height("100%"))
                              .Sortable() // Enable sorting
                              .Resizable(resize => resize.Columns(false))
                              .ColumnMenu(p => p.Columns(false)))

 

 

Thank you,

Ion Petcu

Completed
Last Updated: 26 May 2020 14:37 by ADMIN
Release 2020.R2.SP.next
Bug Report
Ticket: #1461445

Current behavior
Resizing a column in a group with resizeColumn() resizes always the last column in the group and not the respective one.


Minimal reproduction of the problem with instructions
Dojo: https://dojo.telerik.com/eWoFexan


Environment
kendo ui version 2018.3.1017 and above
Completed
Last Updated: 13 Jan 2020 09:20 by ADMIN
Release R1 2020
Created by: Ikbum Kim
Comments: 1
Category: Grid
Type: Bug Report
0

When I use lock column, margin is created in the right scroll of the grid. Did you know this problem?
How can I fix this problem? 

 

 

Completed
Last Updated: 23 Oct 2019 08:34 by ADMIN

Hi,

I'm experiencing a bug with the kendo grid. In my project I have a rather complicated website where a kendo grid is loaded depending an multiple criteria which can be chosen by the user through dropdowns and multiselects. Luckily, I could break it down to a simple test website and the bug still is bugging around ;)

Description: Depending on the criteria chosen, the grid loads different data which reach from zero to thousands of data rows. In my example here, it's either zero or 100 data rows (depending on the dropdown, if there is either "Empty" or "Not empty" selected). The grid loads its data if you press the button ok (by calling the Load action on the server). The result is meant to be limited to paging of 25 rows (no user choice wanted)!

Heres the code for the cshtml site:

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div id="content">
        <div>
            @(Html.Kendo().DropDownList()
                            .Name("test_selector")
                            .DataTextField("Display")
                            .DataValueField("Value")
                            .BindTo(new List<DropDownVM>() {
                                            new DropDownVM()                                                                    {
                                                Display = "Empty",
                                                Value = "empty"
                                            },
                                            new DropDownVM()                                                                    {
                                                Display = "Not empty",
                                                Value = "notEmpty"
                                            }
                            })
            )
        </div>
        <div>
            @(Html.Kendo().Grid<MyProject.ViewModels.Test.TestItem>()
                                            .Name("grid_Test")
                                            .Columns(columns =>
                                            {
                                                columns.Bound(x => x.TestId).Title("TestId").Width(75);
                                                columns.Bound(x => x.TestName).Title("TestName").Width(75);
                                            })
                                            .Sortable()
                                            .Pageable()
                                            .DataSource(dataSource => dataSource
                                                .Ajax()
                                                .PageSize(25)
                                                .Read(read => read.Action("Load", "Test").Data("GetSelectorData"))
                                            )
                                            .AutoBind(false) //Do not load Grid data initially
            )
        </div>
        <div>
            @Html.Kendo().Button().Name("Load").Content("Load")
        </div>
    </div>
    <script type="text/javascript">
        $("#Load").on("click", function (e) {
            var grid = $("#grid_Test");
            grid.data("kendoGrid").dataSource.read();
        });

        function GetSelectorData() {
            var selectorData = {
                type: $('#test_selector').data("kendoDropDownList").value()
            }
            return selectorData;
        }
    </script>
</body>
</html>

And the corresponding controller:


public class TestController : BaseController
    {
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult Load([DataSourceRequest] DataSourceRequest request, string type)
        {
            List<TestItem> result = new List<TestItem>();
            if (type == "notEmpty")
            {
                for (int id = 1; id <= 100; id++)
                    result.Add(CreateTestItem(id));
            }

            request.PageSize = 25;
            return Json(result.ToDataSourceResult(request));
        }

        private TestItem CreateTestItem(int id)
        {
            TestItem result = new TestItem()
            {
                TestId = id,
                TestName = "Name" + id
            };
            return result;
        }
    }

Problem: The scenario described above works actually fine as long as the grid gets at least one data row delivered as DataSourceResult (i.e., result.Count > 0 in the Load method of the controller). The request object in the controller's Load method also shows request.PageSize to be configured to 25. Also, if I choose "Empty" from the dropdown and press the Load-button, the request in the controller will show PageSize = 25. But if I switch the selector to "Not empty" afterwards and press Load, the request will show PageSize = 0! This results in the grid not being paged at all and showing all results on a single page (which leads to serious connectivity problems in my productive project as soon as there are several thousands of data rows).

I tried a quick workaround in the Load method of the controller by setting the PageSize manually back to 25 (which is not wanted of course, but would actually work for me at the moment):


public ActionResult Load([DataSourceRequest] DataSourceRequest request, string type)
        {
            List<TestItem> result = new List<TestItem>();
            if (type == "notEmpty")
            {
                for (int id = 1; id <= 100; id++)
                    result.Add(CreateTestItem(id));
            }

            request.PageSize = 25;
            return Json(result.ToDataSourceResult(request));
        }

Unfortunately, this doesn't work either. The paging will be back on again and there will be only 25 data rows loaded in the grid but there is only one single page no matter how many data rows are loaded (see attached screenshot).

Do you know about this? Unfortunately I couldn't find any help for this problem so far.

Greetings!

1 2 3