1. Is it hard to understand the version numbers of our releases? If yes, what makes them hard to understand them?
2. Would semantic versioning (SemVer) of our releases make it easier to understand our version numbers and what's behind them?
3. If we go with SemVer, we might need to start with version 3000.0.0 as we currently use 2022.x.x. Please share your thoughts about this approach and ideas for what number versioning would work best for you.
Hi!
The ListView is breaking my web application, and I cannot make head or tail of the reason:
Kendo.Mvc.UI.ListView<T>.VerifySettings()
Also, you demos for the ListView are broken and the browser tab crashed after a while.
I need an urgent fix, as this is affecting the live application.
In our UI for ASP.NET Core R3 2020 (2020.3.915) release, the Column menu message of unsticking a column is "null".
This bug will be resolved in our next official release.
In the meantime, as a workaround, manually set the Unstick Column menu message:
.ColumnMenu(c => c.Messages(m => m.Unstick(
"Unstick Column"
)))
I have a grid with custom editors and they are bound to the grid as such.
columns.Bound(x => x.Parent).EditorTemplateName("ParentEditor").ClientTemplate("#= Parent === undefined || Parent === null ? '' : parentTemplate(Parent)#");
columns.Bound(x => x.Child).EditorTemplateName("ChildEditor").ClientTemplate("#= Child === undefined || Child === null ? '' : childTemplate(Child)#");
The two editor templates look like this:
@model List<ParentViewModel>
@(Html.Kendo()
.MultiSelectFor(m => m)
.DataTextField("Name")
.DataValueField("Id")
.Placeholder("Select one or more parents")
.AutoBind(true)
.TagMode(MultiSelectTagMode.Multiple)
.DataSource(source =>
{
source
.Read(read =>
{
read.Action("GetParent", "Lookup");
});
})
.Events(events => events.Change("onParentChange"))
)
@model List<ChildViewModel>
@(Html.Kendo()
.MultiSelectFor(m => m)
.DataTextField("Name")
.DataValueField("Id")
.Placeholder("Select one or more children")
.AutoBind(true)
.TagMode(MultiSelectTagMode.Multiple)
.DataSource(source =>
{
source
.Read(read =>
{
read.Action("GetChild", "Lookup").Data("getCurrentParents");
})
;
})
)
The UI is properly populating when the grid loads and looks like this:
Coumn Parent|Column Child
A |A1
B |B1, B2
When the user edits the row and removes item B from Column Parent, this code is invoked (which I got from Kendo UI Snippet | Kendo UI Dojo)
function onParentChange(e) {
var selectedonParentChange = this.value();
let dataItems = e.sender.dataItems();
var multiSelect = $("#Child").data("kendoMultiSelect");
var value = multiSelect.value();
multiSelect.dataSource.filter(getFilterObj(dataItems));
multiSelect.dataSource.filter({}); // Adding or removing has no effect
multiSelect.refresh();
multiSelect.value(value);
console.log("Second value: " + multiSelect.value());
var dataSource = multiSelect.dataSource;
dataSource.read();
}
function getFilterObj(dataItems){
let filtObj = {
logic: "or",
filters: [],
};
if(dataItems.length > 0){
for (var i = 0; i < dataItems.length; i++) {
filtObj.filters.push({
field: "ParentId",
operator: "eq",
value: dataItems[i].Id
});
}
} else {
filtObj.filters.push({
field: "ParentId",
operator: "eq",
value: ""
});
}
return filtObj;
}
After the code runs, the UI looks like this:
Coumn Parent|Column Child
A |A1
So far so good. The problem is that when the user hits save this ends up on the Network in the form data:
Parent[0].Id: ParentIdA
Parent[0].Name: A
Child[0].Id: ChildId1
Child[0].Name: A1
Child[0].ParentId: ParentIdA
Child[1].Id: ChildId2
Child[1].Name: B1
Child[1].ParentId: ParentIdB
Child[2].Id: ChildId3
Child[2].Name: B2
Child[2].ParentId: ParentIdB
I have some quick questions around the new license key requirements for the UI for ASP.NET MVC, UI for ASP.NET Core and Reporting modules.
I understand from the FAQ that each licensed developer will have their own separate license key. We build the project on a separate build server, and package it into an installer, and then customers who self host run our installer to deploy the application. Is there a license key that needs to be part of the deployment package, and if so, what key is that, when does it expire, and what happens when it expires?
What I want to ensure 100% is that we don't have a situation where a customer *has* to deploy or upgrade their version of our software, even if we ever discontinue our subscription. I'm fine with developers needing to update license keys on development environments, and I'm fine with customer production environments needing a new license key *if* they are deploying a new version of our software that includes an updated version of Telerik. But it is not OK for my use case if there's a situation where customer production environments that are on an old version of our software with no plans to upgrade will stop working or show watermarks and require an update to fix.
I appreciate any clarification around this topic, or a shove in the right direction to any documentation that makes this clear.
I have some (9) ASPX pages with RadEdit controls in my application.
Since installing the asp.net Ajax version R3 2025 and 2025.1.211 dev hotfix (from a much older version) I'm getting an error whenever IIS tries to send me any of those pages with RadEdit (I can remove the RadEdit control and get the page - without the edit area, but if I put it back, the error returns).
The full error is:
03/04/2025 15:34:02 19: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Security.Cryptography.CryptographicException: The cryptographic operation has failed!
at Telerik.Web.UI.CryptoExceptionThrower.ThrowGenericCryptoException[T]()
at Telerik.Web.UI.CryptoExceptionThrower.ThrowIfFails[T](Func`1 function)
at Telerik.Web.UI.Common.HmacEnabledCryptoService.Encrypt(String input)
at Telerik.Web.Dialogs.DialogParametersSerializer.Serialize()
at Telerik.Web.UI.DialogDefinition.get_SerializedParameters()
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index)
at Telerik.Web.UI.DialogDefinitionConverter.Serialize(Object obj, JavaScriptSerializer serializer)
at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValue(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat, MemberInfo currentMember)
at System.Web.Script.Serialization.JavaScriptSerializer.SerializeDictionary(IDictionary o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat)
at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat, MemberInfo currentMember)
at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValue(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat, MemberInfo currentMember)
at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, StringBuilder output, SerializationFormat serializationFormat)
at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, SerializationFormat serializationFormat)
at Telerik.Web.UI.RadDialogOpener.DescribeComponent(IScriptDescriptor descriptor)
at Telerik.Web.UI.RadWebControl.Telerik.Web.IControl.DescribeComponent(IScriptDescriptor descriptor)
at Telerik.Web.UI.ScriptRegistrar.GetScriptDescriptors(Control control)
at Telerik.Web.UI.RadWebControl.GetScriptDescriptors()
at Telerik.Web.UI.RadWebControl.System.Web.UI.IScriptControl.GetScriptDescriptors()
at System.Web.UI.ScriptControlManager.RegisterScriptDescriptors(IScriptControl scriptControl)
at Telerik.Web.UI.RadWebControl.RegisterScriptDescriptors()
at Telerik.Web.UI.RadWebControl.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at Telerik.Web.UI.RadEditor.RenderContents(HtmlTextWriter writer)
at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer)
at Telerik.Web.UI.RadWebControl.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at Telerik.Web.UI.RadPageView.RenderContents(HtmlTextWriter writer)
at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at Telerik.Web.UI.RadWebControl.RenderContents(HtmlTextWriter writer)
at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer)
at Telerik.Web.UI.RadWebControl.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Page.Render(HtmlTextWriter writer)
at System.Web.UI.Adapters.ControlAdapter.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at Telerik.Web.UI.RadAjaxControl.RenderPageInAjaxMode(HtmlTextWriter writer, Control page)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Page.Render(HtmlTextWriter writer)
at System.Web.UI.Adapters.ControlAdapter.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Can anyone help or advise on what may be causing this?
public static async Task<List<string>> GetUploadedImages(AzureStorageConfig _storageConfig)
{
List<ImageViewModel
> images = new List<ImageViewModel
>();
// Create BlobServiceClient from the account URI
BlobServiceClient blobServiceClient = new BlobServiceClient(_storageConfig.ConnectionString);
// Get reference to the container
BlobContainerClient container = blobServiceClient.GetBlobContainerClient(_storageConfig.ImageContainer);
if (container.Exists())
{
var data = container.GetBlobs();
foreach (BlobItem blobItem in container.GetBlobs())
{
images.Add(container.Uri + "/" + blobItem.Name);
}
}
return await Task.FromResult(images);
}
Hy,
I have the following graph that displays the values ​​when I hover over the column with the mouse:
With the "PDF Export" button highlighted in yellow I export the graph to PDF using the chart API: https://demos.telerik.com/aspnet-core/chart-api/pdf-export
Attached you can find the export in pdf that is created.
How can I display the values ​​of the two series in the pdf file?
Thanks for any help
//Add a dropdown tool for inserting symbols.
string selectTitle = "Select a symbol to insert";
//Standard html select.
//Cannot find a way to use an html Select in Kendo 2025Q1. This worked in Kendo 2024.Q4,
// after removing the 'ref-toolbar-tool' attribute from the div preceding the Select.
string toolNameSelect = $"insertSymbol-{EditorIdClean}";
string dropdownNameSelect = $"symbolSelect_{EditorIdClean}";
string symbolSelect = $"<label for='{dropdownNameSelect}' class='visually-hidden'>Symbol:</label>" +
$"<select id='{dropdownNameSelect}' " +
$"title='{selectTitle}' " +
$"aria-label='{selectTitle}' " +
"style='width:150px' " +
"onclick='testSymbolSelect(this)' " + //The click event is registered * the alert appears.
"onchange='InsertSymbolSelect(this)' " +
">" +
$"{symbolHtmlSelectOptions()}" +
$"</select>";
toolFactories.Add(tools => tools
.CustomTemplate(x => x
.Name(toolNameSelect)
.Tooltip(selectTitle)
.Template(symbolSelect)
));