Pending Review
Last Updated: 16 Oct 2019 10:51 by T

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!

Pending Review
Last Updated: 26 Sep 2019 15:06 by ADMIN
Created by: Dave
Comments: 1
Category: Grid
Type: Feature Request
0

Hello, 

 

I think there is a bug with the DataTimeOffset field when used in a Grid. It cannot display correctly and is showing something like /Date(1364927400000)/. I have to retrieve my data from database as DateTimeOffset format and then use a new ViewModel to convert the DateTimeOffset values to DateTime values. This is really annoying.

 

Could you let me know if there is a way a DateTimeOffset field can be supported in the grid? Sometimes you do have to display the time zone info.

 

I hope this can be fixed in a future release.

 

Thanks,

Sam

Pending Review
Last Updated: 24 Sep 2019 07:14 by ADMIN
Created by: Jasmine
Comments: 1
Category: Gantt
Type: Bug Report
0

Hi,

 

I have developed an application where I am displaying records in kendo Gantt chart, Initially I want to display only title and give user the option to select start & end date.  This means that I need to pass null value for start & end date, but I could not find the option. Could you please help me with it.

Also I want to add validations for start date & end date i.e. if user does not enter start & end date an alert should be displayed specifying user to add dates.

Please let m know whether its possible or not & if possible how should I go ahead with it.

  

Pending Review
Last Updated: 09 Sep 2019 11:36 by ADMIN
Created by: Tom
Comments: 1
Category: Scheduler
Type: Feature Request
1

This is in regards to my previous ticket #1426737. Your suggested solution did not work on closer look. The problem is that the event is turned off completely instead of only for a specific event.

Let me give you a practical example: I have a separate filter for the scheduler that allows me to look at the events for a specific resource. If someone else on a different computer now adds an event that is assigned to a different resource, it still shows up on my calendar. I want to suppress that event if it doesn't match the resource I selected in the filter. Using the taskHub.off('create') turns off the 'create' event completely (at least until the user refreshes the page). That way, new tasks added by someone for the selected resource won't show up.

I would like to subscribe to the events like this:

taskHub.client.update = onScheduleUpdate;

taskHub.client.create = onScheduleCreate;

And then in the function check if the filter applies to the task and if not, suppress it. I tried the 'preventDefault' method, but that also turns off the event completely.

functiononScheduleCreate(e) {

if(e.AssignedResource != filter.AssignedResource)

      e.preventDefault(); -- does not work, turns off this event completely

}

This is not an untypical requirement for a calendar, especially if there are hundreds of tasks and filtering is the only option to organize them in a legible way.

There has to be a way to achieve this, but I have spent already way too much time on this. I need your help.

Thanks. 

Pending Review
Last Updated: 05 Sep 2019 15:45 by ADMIN

In the grouping demo for MultiColumnComboBox (https://demos.telerik.com/aspnet-mvc/multicolumncombobox/grouping), the first group 'Argentina' is not displayed as a black label on the right. This is inconsistent with the way other groups are displayed.

This can pose a usability issue for example when there are only two groups. The second group has a black label on the right, but the first group does not.

To be consistent, the first group should also display as a black label on the right.

Pending Review
Last Updated: 28 Aug 2019 13:04 by ADMIN
Hi,
I have a problem with the selection in the scheduler. The selection with mouse and the shift button from e.g. 1pm to 3pm is possible but not from 3pm to 1pm.
There's no problem with a selection only by mouse (hold left mouse button and select time-slots). There's a selection in both directions possible.
The Problem occurs in UI for ASP.NET Core and UI for ASP.NET MVC.
Here's my example for my problem: https://dojo.telerik.com/UgOVEGah

Is there any solution to select time-slots from a higher to a lower time with the shift button?
Pending Review
Last Updated: 27 Aug 2019 10:51 by ADMIN
When using data attributes on a viewmodel for a grid popup editor:
1. Provide input that causes a validation error message to appear
2. Correct the error with new input, do not blur the final field
3. Click save.
4. Instead of validating the data and submitting, only validation occurs
Pending Review
Last Updated: 27 Aug 2019 06:24 by ADMIN
Created by: Rakesh
Comments: 2
Category: Spreadsheet
Type: Feature Request
0

Hi There,

I am facing one issue in kendo spreadsheet onchange event.

Suppose I have applied formula on one cell A1 and formula is =SUM(B1:B3)

Now one change of values in B1 to B3 on change event gets fired but whenever cell A1 values gets updated i.e. on entering value in B1 to B2, on change event doesn’t get fired.

How can I make onchange event fire for formula cell.

 

Thank you,

Rakesh

Pending Review
Last Updated: 13 Aug 2019 11:12 by ADMIN

When I use a grid, I can enable Filterable and the column shows me when I am filtering it; however if I enable ColumnMenu I have no indication if I am filtering on that column.  We've used a work around to handle this state ourselves, but its ugly and I think this should be part of the core product.

@(Html.Kendo().Grid<ShipmentGrid>()
  .Name("grid")
  .AutoBind(false)
  .Columns(columns =>
  {
  columns.Template(@<text></text>).Width(50).Title("PDFs").ClientTemplate($"<a href='javascript:" + jsPage + $".openDocumentWindow(#=AccountId#, #=OrderNumber#, #=OrderLineId#, #=OrderLineNumber#)'><img src={Url.Content("~/Content/images/pdficon_small.png")} /></a>");
  columns.Bound(m => m.CustomerName).Width(200).Title("Customer").HeaderTemplate("Customer <span style='float:center' class='k-icon k-i-filter'></span>").Filterable(f => f.Multi(true).Search(true)).Sortable(true);
  columns.Bound(m => m.PurchaseOrderNumber).Width(100).Title("PO").HeaderTemplate("PO <span style='float:center' class='k-icon k-i-filter'></span>").Filterable(f => f.Multi(true).Search(true)).Sortable(true);
  })
  .HtmlAttributes(new { style = "font-size:0.85em;" })
  .Filterable()
  .ColumnMenu()
  .Reorderable(reorder => reorder.Columns(true))
  .Resizable(r => r.Columns(true))
  .Scrollable(s => s.Height(340))
  .Pageable(pageable => pageable
  .Refresh(true).ButtonCount(10)
  .PageSizes(new [] { 25, 250, 2500 })
)
  .Sortable(sortable => sortable
  .SortMode(GridSortMode.SingleColumn)
)
  .ClientDetailTemplateId("itemdetail")
  .DataSource(dataSource => dataSource
  .Ajax()
  .Read(read => read.Url("/api/shipments").Data(jsPage + ".getParameters"))
  .PageSize(2500)
  .ServerOperation(false)
  .Events(events => events
  .Error(jsPage + ".GridService.onError")
  .RequestStart(jsPage + ".GridService.onRequestStart")
  .RequestEnd(jsPage + ".GridService.onRequestEnd")
)
)
  .NoRecords()
  .Events(events => events.DataBound(jsPage + ".onDataBound"))
)

Pending Review
Last Updated: 06 Aug 2019 15:00 by ADMIN
Created by: Tommy
Comments: 1
Category: UI for ASP.NET MVC
Type: Bug Report
0
It seems that the Kendo Grid control no longer treats null text to show as empty when using client templates for columns. Previously, if the model property reference in the client template was null (on initial add, for example), it would display empty text. Now all of our columns are showing 'null' text... Was this intended?
Pending Review
Last Updated: 04 Jul 2019 10:44 by ADMIN

Hi, 

For example:

  1. Go to: https://demos.telerik.com/aspnet-mvc/numerictextbox
  2. Click on "Events" in left menu.
  3. Click on back button in browser.
  4. The fields are now empty.

Tried with Firefox 67 for Mac.

 

Pending Review
Last Updated: 29 May 2019 16:14 by ADMIN
Created by: Manu
Comments: 1
Category: Grid
Type: Bug Report
1

Hello,

since I updated Telerik UI for ASP.net MVC from version 2019.1.220 to 2019.2.514, the paging part of the grid doesn't display as expected in IE11 with compatibility with IE9  (<meta http-equiv="x-ua-compatible" content="IE=9">)

If I remove the compatibility with IE9, it's ok, but I need it to support older computer.  

version 2019.1.220: 

version 2019.2.514:

 

 Is there a solution to display it correctly?

Thank you very much and best regards.

 

Emmanuel Tharin

Pending Review
Last Updated: 28 May 2019 10:04 by ADMIN

When the page first loads, everything looks okay...

 

But if I show a hidden column...

 

Here's what happens...

The newly shown column is circled in blue. The problem, as you can see, is that the position of the column circled in red should actually be swapped with the column to the left of it. And column #2 (ordering from left to right in the picture, starting from #1) now has an incorrect parent header ("Average") - it should be "Total". And column #4 (the one circled in red), "Constrained", should have a parent header of "Average" (that gray one in column #2).

 

And just FYI, if I show another column (which should also be under "Session Time [minutes]")...

 

...then here's what we get...

(Newly shown column circled in blue.)

 

But, you can see that the data columns are placed correctly. Just not the headers.

Pending Review
Last Updated: 28 May 2019 08:18 by ADMIN
Created by: IT Valk Solutions
Comments: 2
Category: Chart
Type: Feature Request
1

01 @(Html.Kendo().Chart<Model>() 02 .Name("Donut_" + @customId) 03 .DataSource(dataSource => dataSource 04 .Custom() 05 .Type("aspnetmvc-ajax") 06 .Transport(transport => transport 07 .Read(read => read. 08 Action("Data_Read", "Data") 09 )
10 .Refresh(refresh => refresh.
11 Interval(5000)
12 )
13 ) 14 .Events(events => events 15 .Error("onDonutError") 16 ) 17 .Schema(schema => schema 18 .Data("Data") 19 .Total("Total") 20 .Errors("Errors") 21 ) 22 ) 23 .Series(series => { series 24 .Donut( 25 model => model.Value, 26 model => model.Description, 27 model => model.Color, 28 null 29 ) 30 }) 31 .Events(events => events 32 .SeriesHover("onDonutSeriesHover") 33 .Render("onDonutRender") 34 ) 35 )


I would like to have an option to set an interval for refreshing the data in my chart (or any other control that uses a datasource). At this moment, I need to use the jQuery setInterval function to refresh the chart, but when using a dynamic range of controls, I don't want to write a refresh for every control on my page.

This can be done in two ways. First, a parameter in the wrapper that takes an int as value (for instance 5000 for 5 seconds). Second, an event that hooks into a JavaScript function, passing the id and type of the control. The first option is absolutely preferred (as shown in the code on line 10).

If you're declining this request, please advise on the best practice to handle this situation with regard to dynamic dashboards.

Pending Review
Last Updated: 17 May 2019 08:51 by Prashanth
Created by: Prashanth
Comments: 0
Category: Grid
Type: Bug Report
1

The issue is present only when a field in the model has been updated. When an invalid value is attempted to be saved, the validation is triggered. Upon pressing the Esc key, the dirty indicator should not be shown.

The expected behavior would be to not show the dirty indicator at all as the value has been returned to the initial one. Furthermore, the indicator is not positioned in the left top corner but immediately above the value.

Steps to replicate:

1. Change the value of any field.

2. Navigate to a field which has validation.

3. Set an invalid value in order to trigger the validation, respectively show a validation message.

4. Press Esc to undo the change.

5. The dirty indicator is shown and mispositioned.

Dojo sample:

https://dojo.telerik.com/iHoRaWIg

Short video demonstration:

https://screencast-o-matic.com/watch/cqhbjKTeK2

Pending Review
Last Updated: 02 May 2019 06:50 by ADMIN

Issue
If a single tag MultiSelect is blurred on filtering and then refocused, then the clear button is pressed with the dropdown open, the single tag remains even though there are no selected items.

Reproduction
1.  Run this dojo.
2.  Click on MultiSelect input and type L
3.  Click outside the MultiSelect to blur it - filter is removed.
4.  Click on MultiSelect input (dropdown opens) and press the clear button.

Current behavior
MultiSelect value is cleared. But the single tag remains visible and states that there are selected items even though there are none.

Expected/desired behavior
The single tag should be removed as shown in this Kendo UI Dojo using R3 2018.

Workaround
Handle MultiSelect's change event as follows:

            function onChange(e) {
              if(!e.sender.value().length){
                e.sender.element.closest(".k-multiselect").find(".k-button").remove();
              }
            }

Pending Review
Last Updated: 26 Apr 2019 13:39 by ADMIN
Created by: Hesam
Comments: 1
Category: UI for ASP.NET MVC
Type: Feature Request
0

Hi, 

I'm wondering that if it's too much trouble for Telerik to add/implement  Persian Calendar In Kendo UI Products.

respectfully,

Thank you for your consideration,

Pending Review
Last Updated: 22 Apr 2019 12:30 by ADMIN
Created by: Vinay
Comments: 1
Category: Grid
Type: Feature Request
0

Hi Viktor,

 

We are looking for functionality of Context Menu on Columns of Kendo MVC grid.

We want various column selection on grid header.

Please help us to get this feature.

Regards

Supriya

 

 

Pending Review
Last Updated: 10 Apr 2019 14:05 by ADMIN
Created by: Stacy
Comments: 2
Category: UI for ASP.NET MVC
Type: Bug Report
3

Using Visual Studio Enterprise 16.0.0.

Created MVC Project 4.6.1

Run Telerik utility to "Convert to Telerik Web Application" from Project context menu. On a clean project just created from the VS Template.

Since previous step errors out and doesn't complete an attempt was made to use the Telerik Upgrade Wizard.

This produced the following error: 


An error occurred while running the wizard.

Error executing custom action Telerik.VSX.Actions.ShowConversionLogAction: Could not instantiate a TextTransformation object from the compiled assembly. The following Exception was thrown:
System.InvalidCastException: Unable to cast object of type 'Microsoft.VisualStudio.TextTemplating3e7341780e3e4a17bdabe17b447cd796.GeneratedTextTransformation' to type 'Microsoft.VisualStudio.TextTemplating.TextTransformation'.
   at Microsoft.VisualStudio.TextTemplating.TransformationRunner.CreateTextTransformation(String fullClassName, ITextTemplatingEngineHost host, Assembly assembly, ITextTemplatingSession userSession)

 

 

 

Pending Review
Last Updated: 10 Apr 2019 13:23 by ADMIN
Created by: Stacy
Comments: 2
Category: UI for ASP.NET MVC
Type: Bug Report
1

Using Visual Studio Enterprise 16.0.0.

Created MVC Project 4.6.1

Run Telerik utility to "Convert to Telerik Web Application" from Project context menu. On a clean project just created from the VS Template.

 

Error output from from Telerik VSX:


An error occurred while running the wizard.

 

Error executing custom action Telerik.KendoUI.Mvc.VSX.Actions.UpdateWebConfigAction: Could not instantiate a TextTransformation object from the compiled assembly. The following Exception was thrown:

System.InvalidCastException: Unable to cast object of type 'Microsoft.VisualStudio.TextTemplating1fd31dc42b754a598ac1cf6e6d72e8f7.GeneratedTextTransformation' to type 'Microsoft.VisualStudio.TextTemplating.TextTransformation'.

   at Microsoft.VisualStudio.TextTemplating.TransformationRunner.CreateTextTransformation(String fullClassName, ITextTemplatingEngineHost host, Assembly assembly, ITextTemplatingSession userSession)
Web.config as generated by VS 2019 MVC project Template


<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  https://go.microsoft.com/fwlink/?LinkId=301879
  -->
<configuration>
  <appSettings>
    <add key="webpages:Version" value="3.0.0.0"/>
    <add key="webpages:Enabled" value="false"/>
    <add key="ClientValidationEnabled" value="true"/>
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.6.1"/>
    <httpRuntime targetFramework="4.6.1"/>
    <authentication mode="Windows"/>
    <authorization>
      <deny users="?"/>
    </authorization>
  </system.web>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f"/>
        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.1.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"/>
        <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs"
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/>
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
    </compilers>
  </system.codedom>
</configuration>

1 2 3 4 5 6