Test Environment:
OS Version: 22H2 OS Build 22621.1702
Edge Version: Edge(Chromium) Version 114.0.1823.37 (Official build) (64-bit)
Repro-Steps:
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src 'self'; script-src 'self'; style-src 'self' unsafe-inline; font-src 'self' data:;" />
We have the following requirements:This is the same as an existing feature request, which was marked as completed but it doesn't achieve what was originally requested.
Orgchart like the one in Telerik ASP.NET Ajax
The UI for ASP.NET MVC OrgChart component is missing functionality found in the UI for ASP.NET AJAX product.
The demos only show a small organisation dataset. With a large dataset (including up to 5 levels), I found the current MVC solution becomes unusable. For example, the vertical/horizontal scroll bar becomes tiny and navigation becomes difficult.
The extra functionality available in the AJAX works around issues, such as, zooming in/out and solves other basic requirements, such as Export to PDF.
Please make the AJAX Functionality and Application Scenarios available in the MVC product.
Inspect the Grid in the MVC demos.
The Grid renders the k-widget class.
The rendering must be consistent with jQuery and Core and the k-widget class should not be rendered. The issue is specifically in the MVC Grid. The Kendo UI for jQuery and the Core Grid no longer render this class.
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.
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.
Aren't the files in the /Content/kendo/2023.1.314/ folder KendoUI version files, not MVC version files?
Below is the contents of the file after upgrading to the new version.
I thought it was strange, so I browsed the stylesheet folder of the newly installed version.
The folder contents of the previous version were as follows.
Isn't it a problem with the distributed installation files?
Good Day,
We would like to submit a feature request to add a handler method for the `HasChildren` property of a HierarchicalDatasource for the MVC Wrappers. It currently only supports a string field name even though the Javascript api can handle a function. We are currently working around this by using the wrapper to define our widget, and then in a kendo.syncready we are creating a datasource and then using setOptions of the widget to achieve the same effect, which should be in the wrapper already.
Example code snippet:
<script>
kendo.syncReady(function() {
let panelBar = jQuery("#@panelBarId").getKendoPanelBar();
if (!panelBar) {
return;
}
var ds = new kendo.data.HierarchicalDataSource({
transport: {
read: {
url: '@Url.Action("LoadPanelBarResults", "Home")',
data: function (){
return resultsPanelbarData('@Html.Raw(searchTagString)', '@Html.Raw(parentTagString)');
}
}
},
schema: {
model: {
id: 'IdString',
hasChildren: hasChildrenFunction
}
}
});
panelBar.setOptions({dataSource: ds});
});
</script>
We hope this request is clear, let us know if there are any questions of the use of this scenario.
Thankyou for your time,
Regards,
Nathan
This problem raised in the community and it is challenging for developers to fix. Let say, I define the model for datetime as follow:
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime CustomDate{ get; set; }
When we call it in the View and add a code for the Html.Kendo().DatePicker() , then it should follow the format of the model. Currently, DateTime will ignore our defined method model and we have to go and change globalization and some additional code for it to work. The expected result is Kendo DatePicker must adapt whatever we define in ASP.net MVC model without need to make any additional change.
In default ASP.net MVC, you have option to generate View from the EF, here is one example:
Tutorial: Generate views for EF Database First with ASP.NET MVC app | Microsoft Learn
I am looking for a similar option like we could right click and open wizard for Telerik ASP.net MVC and then select the EF and follow steps to generate a View such as form or grid. It also should generate required controller and should be smart like based on the data type creates the required field (e.g. date picker when data type is date) and the user could customize it after that.
Similar functionality already exists in the ASP.net MVC and it would be nice to have such a wizard for the Telerik too. I saw a similar one for Telerik for AJAX but it is not advance and I am looking for something simple and quick in Telerik.
There is a possibility to add Minimum/Maximum length validation in Kendo editor , but is is not user friendly. I am referring to method describe on the following website:
ASP.NET MVC Editor Component Add maxlength Validations - Telerik UI for ASP.NET MVC
What I am looking for would be easier way just by adding some attribute so the code should be like the following:
@(Html.Kendo().Editor() .Name("editor") .HtmlAttributes(new { style = "width: 100%; height:840px", aria_label = "editor" })
.MinLenght(10)
.MaxLength(5000) )
In this case, when you add the one which I added as Red it should automatically enforce it and do validation based on number of characters.
There are cases where we observe JavaScript errors, and the experience is like opening the Developer Tool in the browser and check the log in the Console. When the problem resides on the user, it is not easy to guide them to perform this action. To overcome this problem, there is a need for JavaScript error collector function. When we call this function, it should collect all JavaScript error log files and send them as a list. Then the developer would be able to use it to troubleshoot issues and also could implement interface like collect and store JavaScript error log files. It is recommended the error collector support the following data:
Location: the page leads to error.
Date and Time: with ability to customize it like set a time zone or default to match server.
Error message: Complete error message in the client
User: In case user login to the page
Browser-Agent Data: information about user's browser, operating system ...
Hi Team,
I would like to suggest that Progress/DevTools creates a SSO authentication service. I'll elaborate further with more details.
Thank you!
Regression in R1 2023.
columns.Bound(p => p.OrderDate).HtmlAttributes(new { title = "Order Date: #=kendo.toString(OrderDate, 'dd-MM-yyyy')# " });
kendo.toString is not executed and as a result the date is not formatted. The exact value of the title attribute, as shown above is rendered as title of the cell.
The logic is executed and the OrderDate value is rendered in the title with the specified format.
I have a cshtml page that uses Kendo UI ASP.NET MVC that does the following:
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(); } );
Currently, the groupPaging is not supported and is missing in WebApiDataSourceRequestModelBinder, thus enabling groupPaging leads to undesired behavior with the following Grid configuration:
$("#grid").kendoGrid({
dataSource: {
type: "webapi",
pageSize: 50,
page: 1,
groupPaging: true,
total: 0,
serverPaging: true,
serverSorting: true,
serverFiltering: true,
serverGrouping: true,
serverAggregates: true,
group: {
field: "SomeText",
dir: "desc"
},
transport: {
read: "Url..."
},
schema: {
data: "Data",
total: "Total",
errors: "Errors",
model: {
id: "SomeId",
fields: {
SomeId: { type: "number" },
SomeText: {type: "string" },
SomeDate: { type: "date" } } } } },
sortable: true,
filterable: true,
pageable: true,
columns: [ { field: "SomeId"}, { field: "SomeText"}, { field: "SomeDate"} ]
});