Completed
Last Updated: 08 Apr 2024 08:33 by ADMIN
Release 2024 Q2 (15.05.2024)

1. Create a solution with several Telerik UI for MVC projects

2. Perform a rename of a value that is present in multiple projects

Expected result: Rename is performed successfully.

Actual result: Visual Studio crashes.

Application: devenv.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ArgumentException
   at EnvDTE.Document.get_ProjectItem()
   at Telerik.VSX.Web.Tracking.VSDocumentInfo.<CheckIsBlazorProject>b__9_0()
   at Telerik.VSX.Internal.VisualStudio.VisualStudioThreadHelper+<>c__DisplayClass1_0`1+<<RunInMainThread>b__0>d[[System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
   at Microsoft.VisualStudio.Threading.JoinableTask.CompleteOnCurrentThread()
   at Microsoft.VisualStudio.Threading.JoinableTask`1[[System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].CompleteOnCurrentThread()
   at Telerik.VSX.Internal.VisualStudio.VisualStudioThreadHelper.RunInMainThread[[System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Func`1<Boolean>)
   at Telerik.VSX.Tracking.Web.KendoTrackedDocumentsManager.FindBlazorComponents(System.Collections.Generic.HashSet`1<Telerik.VSX.Tracking.Web.KendoWidgetComponent>, Telerik.VSX.Tracking.ProjectWrappers.DocumentInfo, System.String, System.String)
   at Telerik.VSX.Tracking.Web.KendoTrackedDocumentsManager.FindComponents(Telerik.VSX.Tracking.ProjectWrappers.DocumentInfo)
   at Telerik.KendoUI.Mvc.VSPackage.VsPackage+<>c__DisplayClass34_0+<<DocumentEvents_DocumentSaved>b__0>d.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
   at Telerik.KendoUI.Mvc.VSPackage.VsPackage+<DocumentEvents_DocumentSaved>d__34.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.VisualStudio.Threading.JoinableTaskFactory+SingleExecuteProtector.TryExecute()
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)

 

Unplanned
Last Updated: 05 Apr 2024 08:52 by ADMIN

Bug report

Using the PDFViewer with the latest version of PDF.js (3.9.179) throws js exceptions. Version 3.4.120 is the last one, with which no js exception is thrown.

Reproduction of the problem

Dojo example: https://dojo.telerik.com/IHedIhur/3

  1. Open the devtools consolve and run the example.

Current behavior

The file is loaded, however, js exceptions are thrown:

The --scale-factor CSS-variable must be set, to the same value as viewport.scale, either on the container-element itself or higher up in the DOM. text_layer.js:480:14

Expected/desired behavior

No js exceptions when using PDF.js versions newer than v3.4.120.

Environment

  • Kendo UI version: 2023.2.718
  • jQuery version: x.y
  • Browser: [all]
Completed
Last Updated: 03 Apr 2024 07:45 by ADMIN
Release 2024 Q1
Created by: Victor
Comments: 21
Category: UI for ASP.NET MVC
Type: Feature Request
25
The Grid should allow switching between case sensitive and case insensitive filtering.
Unplanned
Last Updated: 02 Apr 2024 14:28 by Flavio

Bug report

When a modal Dialog is open, if we open a modal Window and then attempt to close it, a js exception is thrown. This is a regression introduced in version 2024.1.319.

Reproduction of the problem

Run the following dojo example: https://dojo.telerik.com/IrEWEHAZ

  1. Click the "Open Nested Window" button.
  2. After the Window opens, try to close it by clicking its "x" button.

Current behavior

A js exception is thrown:
Uncaught TypeError: this._object(...)._overlay is not a function
The issue is related to the modal option being enabled in both the Dialog and the Window. Disabling this option in one of them, prevents the exception.

Expected/desired behavior

The Window closes without exceptions.

Environment

  • Kendo UI version: 2024.1.319
  • jQuery version: x.y
  • Browser: [all]
Unplanned
Last Updated: 26 Mar 2024 14:43 by Ivan
Created by: Ivan
Comments: 0
Category: Chart
Type: Bug Report
0

### Bug report

The legend items cannot be configured in the SeriesDefaults() configuration of the Pie Chart.

### Reproduction of the problem

1) Create a Pie Chart with a visible legend.

2) Add the SeriesDefaults() configuration and try to add the LegendItem() option to set the type of the legend items.

.SeriesDefaults(seriesDefaults =>
{
    seriesDefaults
            .Pie();
            .LegendItem(x => x
                .Type("line")
                .Line(y => y.DashType(ChartDashType.Solid)));
})

The Legenditem() option is available for Telerik UI for ASP.NET Core Pie Chart.

### Expected/desired behavior

The legend items of the Pie Chart must be configurable through the SeriesDefaults() option.


### Environment

* **Telerik UI for ASP.NET MVC version: 2024.1.319
* **Browser: [all]

Unplanned
Last Updated: 26 Mar 2024 13:33 by Raymond

Bug report

Reproduction of the problem

  1. Initialize a PDFViewer and add a button that calls a controller action on click.
<div id="pdfViewer">
</div>

<script type="text/javascript">
    $("#pdfViewer").kendoPDFViewer({
        pdfjsProcessing: {
            file: ""
        }
    });

    function loadFile() {
        $("#pdfViewer").data("kendoPDFViewer").fromFile("@Url.Action("GetPDF", "Home")");
    }
</script>
  1. Implement an action that returns a .pdf file or occasionally returns HttpNotFoundResult:
public ActionResult GetPDF()
{

    var name = "sample.pdf";
    string path = Server.MapPath("/Content/pdf/sample.pdf");

    //generate a random boolean:
    Random rng = new Random();
    bool randomBool = rng.Next(0, 2) > 0;
            
    if (randomBool)
    {
        byte[] fileBytes = System.IO.File.ReadAllBytes(path);
        return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, name);
    }
    else
    {
        return new HttpNotFoundResult("File not found.");
    }
}

Current behavior

In the case where the request returns HttpNotFoundResult, a number of js errors are thrown:

util.js:417 Uncaught (in promise)

The user loses the ability to load a file, because subsequent attempts to load a file by clicking the button result in another js exception:

api.js:1114 Uncaught TypeError: Cannot read properties of null (reading 'sendWithStream')

Expected/desired behavior

The component should show a message that a file is not found, without throwing js exceptions and should not become unusable after a failed attempt to load a file.

Environment

  • Kendo UI version: 2024.1.319
  • jQuery version: x.y
  • Browser: [all]
Unplanned
Last Updated: 26 Mar 2024 09:16 by nidhin
Created by: nidhin
Comments: 0
Category: Grid
Type: Bug Report
1

Bug report

A hidden template column that is not included in the ColumnMenu appears after showing another column

Reproduction of the problem

  • Use the following declaration for the columns:
              .Columns(columns =>
              {
                  //Hidden template column
                  columns.Template(x =>
                  {
                      int rptIndex = Model.IndexOf(x);
                      string namePrefix = "Grid[" + rptIndex + "].";
                      Html.Hidden(namePrefix + "Id", x.Id, new { @readonly = "readonly" });
                      Html.Hidden(namePrefix + "Name", x.Name, new { @readonly = "readonly" });
                  }).Hidden().IncludeInMenu(false);

                  columns.Bound(x => x.Id).Width(120).Hidden(true);
                  columns.Bound(x => x.Name).Width(200);
                  columns.Bound(x => x.ReportingDateOriginal).Width(500).HtmlAttributes(new { id = "reporting-date-original" })
                    .Filterable(f => f.UI(GridFilterUIRole.DateTimePicker).Cell(c => c.Template("dateFilter")));
                  columns.Bound(x => x.Test1).Width(200).Hidden(true);
                  columns.Bound(x => x.TimezoneOffset).Width(200).HtmlAttributes(new { id = "reporting-date-offset" });
                  columns.Bound(x => x.Test2).Width(200).Hidden(true);
                  columns.Bound(x => x.ReportingDateAdjusted).Width(500).HtmlAttributes(new { id = "reporting-date-adjusted" })
                    .Filterable(f => f.UI(GridFilterUIRole.DateTimePicker).Cell(c => c.Template("dateFilter")));
                  columns.Bound(x => x.Test3).Width(200);
                  columns.Bound(x => x.Test4).Width(200).Hidden(true);
                  columns.Bound(x => x.Test5).Width(200);
              })
  • Show the Id column

Current behavior

The first time instead of the Id, the template column appears.

Expected/desired behavior

The Id column should appear and the template column should remain hidden.

Environment

  • Kendo UI version: 2024.1.130
  • Browser: [all]
Declined
Last Updated: 25 Mar 2024 13:37 by ADMIN
Server filtering kendo grids and json deserialization errors in asp.net.
When we are managing large volumes of data with several thousand datasource objects (grid rows) all of the rows need to be transported with each event.
This leads to errors with the json being too large to serialize.

We wish to restrict the data footprint and only return data for the page requested.
so if the grid has 100 pages and page size is 10 we only want to return the 10 rows required for the page, not 1000 rows.
This is not possible with the Kendo grid.
To work around this issue we have devised a strategy to return the the number of datasource objects Kendo grid expects up to the requested page count, but they are empty objects with no data, and then only have the last 10 rows populated with data.
It would be better for the grid control just to expect the number of results expected to the selected page and not have to add the dummy rows, so long as the total number of rows is provided so that the grid knows how many pages there are.

Our work around looks something like this in asp.net MVC

var users = cm.getUsers();
var result = new DataSourceResult();
var results = new List<user>();
int index = 0;
if (pageNum == 1)
    results = users.Take(pageSize).ToList();
else
{
     index = pageSize * (pageNum - 1);
     results = users.Skip(index).Take(pageSize).ToList();
}
List<user> output = null;

[This is the bit that should be handled by the kendo grid, without the need for dummy rows to further reduce json size]
if (index == 0)
{
     output = new List<user>(results);
}
else
{
     output = new user[index].ToList();
     output.AddRange(results);
}
result = output.ToDataSourceResult(request);
result.Total = users.Count();
return Json(result, JsonRequestBehavior.AllowGet);
Completed
Last Updated: 25 Mar 2024 13:35 by ADMIN
Created by: Michael
Comments: 1
Category: Installer and VS Extensions
Type: Bug Report
0
I recently updated my Telerik extensions in VS2019 and the MVC extension (v2022.1.429.1) is causing Visual Studio to hang when I open a solution that is based on KendoUI for MVC.  When I disable the extension the solution opens normally and no hang is encountered, I am able to navigate the projects in the solution and perform all required actions.
Completed
Last Updated: 25 Mar 2024 13:34 by ADMIN
Created by: Marcel
Comments: 1
Category: UI for ASP.NET MVC
Type: Feature Request
0

I'm using the ClientTemplate-Feature to render buttons for CRUD-actions in grids. For one entity I have to use a TreeList instead of a Grid due to parent-child relations. It would be great if I could use the same templates I use for the grid for the treelist as well.

Example:

columns.Bound(x => x.UserName)
        .ClientTemplate("<a href='" + Url.Admin().Account() + "/#= Id#/edit'>#= UserName #</a>")
        .Width(300);
Declined
Last Updated: 25 Mar 2024 13:34 by ADMIN

Not sure if this is already in the works but when building mvc grids it would be helpful to have the ability to prevent a column from getting too big when the screen size is larger than the grid needs. Right now if columns are turned off and there is more space for the unlocked columns, they expand to fill the page which is normally fine but in some instances it looks silly to have a column for example that you would enter a 2 digit number in to be 300 plus px wide.

 

Declined
Last Updated: 25 Mar 2024 13:31 by ADMIN
Created by: Chris
Comments: 1
Category: UI for ASP.NET MVC
Type: Bug Report
0

I have a cshtml page that uses Kendo UI ASP.NET MVC that does the following:

  • sends an ajax request to a controller action method,
  • opens a new tab using window.open(),
  • displays a temporary message to let the user know that something is happening,
  • then overwrite the new tab content using the view that is contained in the ajax response.

The view contains one or more grid widgets (the number depends on how many result types were requested) and each grid is set up to export Excel.

The problem is that when window.open() is used to open a new tab, the browser history state is null and the window.location.href is empty with the browser location showing "about:blank". For Chrome and Firefox, this does not cause any issues when exporting excel for the grid.  However, when using Edge with this situation, when the Export to Excel grid toolbar button is clicked and the onExportExcel event is fired,  the browser Open or Save dialog prompt is displayed but the active tab (the one that contained the grid) closes. This behaviour is very undesireable. The ProxyUrl grid excel option does not fire since Edge supports javascript file saving.

A workaround for this situation is to forcibly set the new tab window object location href by using the window.history.pushUpdate function. A code snippet is included below.


let dataModel = {Id = 123571113, Name="jason bourne"};
let jsonModel = JSON.stringify(dataModel);
let curDate = new Date();
let targetUrl = '@Url.Action("Reports", "Report", new { @area = "Reports" })';
let targetWindowName = "something meaningful" + " " + curDate.toISOString();//add datetime stamp to avoid issue where you cannot open a window with the same name as the current window.
let html = "some html content to provide a temporary message to your audience";
let targetWindow = window.open(targetUrl, targetWindowName);
if (targetWindow !== null && targetWindow !== undefined)
{
   targetWindow.document.write(html);
   targetWindow.document.close(); // to finish loading the page
   targetWindow.document.title = targetWindowName;

   //attempt to forcibly update the URL in the history and target window location to fix problem with grid export to excel on Edge browser
   let targetWindowHistoryHref = window.location.href;
   if (oModel.BuildingDesigns !== null && oModel.BuildingDesigns !== undefined && oModel.BuildingDesigns.length > 0) {
       targetWindowHistoryHref += "?oBuildingDesignId=" + oModel.BuildingDesigns[0].ObfuscatedBuildingDesignId + "&BuildingDesignName=" + oModel.BuildingDesigns[0].BuildingDesignName;
   } else {
       targetWindowHistoryHref += "?" + oModel.Target;
   }
   targetWindow.history.pushState(null, null, targetWindowHistoryHref);
}
$.when(
	$.ajax({
		type: "POST",
		dataType: "html", // this is the data type expected to be returned from the controller method
		contentType: "application/json", // this is the content type expected by the controller method
		url: targetUrl,
		data: jsonModel,
		beforeSend: function() {
			console.log(".... submitting report request");
			athena.loader.loading("submitting report request");
		},
		success: function(response) {
			athena.loader.stopLoading();
			if (debugLevel > 2) {
				console.log(".... response = " + response + " : ", response);
			}

			//attempt to populate the target browser tab with the response
			try {
				console.log(".... attempting to open a browser tab and populate it with the HTML response object");
				console.log(".... targetWindow = " + targetWindow);
				//will trigger popup blockers :: targetWindow = window.open("", oModel.Target);
				if (targetWindow !== null) {
					if (response === null || response === undefined) {
						targetWindow.document.body.innerHTML = '';
					} else {
						//completely replace the existing document (not just the innerhtml)
						targetWindow.document.open();
						targetWindow.document.write(response);
						targetWindow.document.close();
						targetWindow.document.title = targetWindowName;
					}
				}
			} catch (ex) {
				// do nothing, just catch when the open fails.
				console.log("error: " + ex.message);
			}
		},
		error: function(jqXhr, textStatus, errorThrown) {
			console.log('.... error :: ajax status = ' + textStatus + ' :: errorThrown = ' + errorThrown);
			console.log('....-- jqXhr.responseText :: \n' + jqXhr.responseText);
		}
	})
).done(
	function() {
		console.log(".... report request has completed");
		targetWindow.focus();
	}
);

Unplanned
Last Updated: 25 Mar 2024 13:30 by ADMIN
Created by: Reza
Comments: 7
Category: UI for ASP.NET MVC
Type: Feature Request
1

There is a Kendo Validation in addition to ASP.net MVC one. 

There is a need for a method or script to disable the Kendo Validation and enforce the code to follow rules we define in the model.

Currently we have to write validation bypass script for each field, but I am looking for a way to disable Kendo Validations for the entire project or/and for specific page and it follows validation rules from the MVC model.

In most cases, validations from the MVC are sufficient and there is no need for redundance validations from the telerik.

 

Completed
Last Updated: 25 Mar 2024 13:27 by ADMIN
The title Toolbar Comannds and right above it a link to Breacrumb
Unplanned
Last Updated: 25 Mar 2024 13:25 by ADMIN
Created by: Steven
Comments: 0
Category: UI for ASP.NET MVC
Type: Feature Request
0

My understanding after talking to support is that a grid with a popup editor has code behind the scenes that stops adverse scrolling behavior when the popup window closes.  However, under certain circumstances, this doesn't work if you have a grid nested in your popup editor that also has a popup editor.  As it was described to me, this "behavior is not directly related to the Grid, but the Kendo Window. Generally, it provides the preventScroll property, but I am afraid this scenario is more complex due to the window being internally embedded into the Grid".

The exact scenario I found was that if you shrink you browser window small enough that you need to use some scrolling, scroll down your grid a little, then do something to cause the popup editor to open.  Scroll down again to get to your nested grid, open that popup editor, then close it.  The browser then auto scrolls to the top.

I was given this code to fix the issue (and it DOES fix it):

<script>
    kendo.ui.Grid.fn._destroyEditableOrg = kendo.ui.Grid.fn._destroyEditable;
    kendo.ui.Grid.fn._destroyEditable = function () {
        var that = this;
        if (that._editContainer) {
            var kw = that._editContainer.data().kendoWindow;
            kw.setOptions({
                modal: false
            });
        }
        that._destroyEditableOrg();
    };
</script>

The problem is that these fields aren't documented... I would never have figured this out on my own.  So my feature request is that either this behavior is fixed or these properties exposed from the Grid settings.  

-Steven

PS: For Telerik, the original ticket was 1589389.

Unplanned
Last Updated: 25 Mar 2024 13:24 by ADMIN
Created by: Reza
Comments: 0
Category: UI for ASP.NET MVC
Type: Feature Request
1
There should be ability to select different voice for the CAPTCHA audio, the basic one could be selection between female or male voice and in more advance add some additional voice. Something similar to the Windows narrator where you are able to select different voices. 
Unplanned
Last Updated: 25 Mar 2024 13:23 by ADMIN
Created by: Eric Mooiweer
Comments: 0
Category: UI for ASP.NET MVC
Type: Feature Request
2

Hello,

Request/suggestion to enhance the scheduling functionality. For production environments, especially with long running processes the current setup is not sufficient.

See excel for an example of how this could work. Extension of current timeline to include a year. Would be best if multiple timelines could be defined creating more or less detail depending on choices.

The other axis to relate to the resource/asset where the work will take place.

Currently the scheduler works best for short-running activities. Displaying longer running activities is a challenge.

Unplanned
Last Updated: 25 Mar 2024 13:20 by ADMIN
Created by: Paul
Comments: 3
Category: UI for ASP.NET MVC
Type: Feature Request
0

I have a Kendo Notification component on my page. When the page loads, it is possible a notification needs to show immediately. This fails because the Notification component is not ready yet. Even putting this message show inside a document.ready() call does not work. There’s no rendered event on this component to know when Kendo has it added to the DOM and it is accessible. So I ended up creating an array of messages to show. And running a setInterval block on page load until it is ready to go. Then clearing the interval and message array. It’s a work around but it is hacky and it would be better if I could subscribe to an event that tells me when the notification component can be used.

Unplanned
Last Updated: 25 Mar 2024 13:19 by ADMIN
Created by: Joh
Comments: 3
Category: Scheduler
Type: Feature Request
1

Hello,

I have a Scheduler Hierarchical Grouping similar as https://demos.telerik.com/aspnet-mvc/scheduler/resources-grouping-hierarchical

rather than meeting room in the above sample, I have department name instead. I group a list of user names by department name on a scheduler timeline view.

Is it possible to have a expand/collapse icon to allow me expand/collapse on each department? similar as tree list below

Please advise. Thanks!

Unplanned
Last Updated: 25 Mar 2024 13:16 by ADMIN
Just like posted here (and declined) : http://kendoui-feedback.telerik.com/forums/127393-kendo-ui-feedback/suggestions/3844570-serialization-support-of-datasourcerequest-and-app

I would like to see a portable separate assembly that : 
- can be referenced both on ASP.NET MVC side and WCF server side.
- A DataSourceRequest and DataSourceResult class that serialize well in both SOAP and REST WCF.

Referencing Kendo from the Application server side also requires references to System.Web.Mvc, Razor pages, ... and others that shouldn't be necessary.
1 2 3 4 5 6