Currently, the Telerik UI for ASP.NET Core Form wrappers does not expose an overload for passing Template Component via the ButtonsTemplate API configuration. In comparison to its ASP.NET MVC counterpart. E.g:
** HtmlHelper **
@(Html.Kendo().Form()
.Name("form")
.ButtonsTemplate(Html.Kendo().Template().AddHtml("<button>Submit</button>"))
)
** TagHelper **
<kendo-form name="formExample" action="Index" method="POST">
<buttons-template>
<kendo-button name="test">
Some Test
</kendo-button>
</buttons-template>
</kendo-form>
It would be beneficial if the configuration accepts a Template Component overload similar to the ButtonsTemplate API in the MVC wrappers.
The Form Core wrappers do not expose a Template component option for the Buttons Template.
The Form Core wrappers should expose a Template component option for the Buttons Template.
ComboBox is not serialized correctly when declared in the Template component
The ComboBox is not serialized correctly when declared in the Template component.
The ComboBox should be serialized correctly when declared in the Template component.
Currently, the only way to nest conventional HTML tag content for the Template Component would be through the following configuration
@(Html.Kendo().Template()
.AddHtml("<div>")
.AddHtml("<p>Test</p>")
.AddHtml("</div>")
)
It would be beneficial if the configuration accepts a delegate overload that would allow transpose the previous configuration to the following
@(Html.Kendo().Template()
.AddHtml(@<text>
<div>
<p>Some Value</p>
</div>
</text>)
)
Currently, the Template component does not expose a delegate overload for the .AddHtml()
API configuration.
The Template component should expose a delegate overload for the .AddHtml()
API configuration.
The TimeDurationPicker sets the following value: 01 01 01 01
The TimeDurationPicker sets the following value: 01 00 00 00
This is a strange bug I came across when making a simple grid for a small personal project. I created a class called Book, which looks like this:
[Table("Books")]
public class Book
{
[Key]
public int Id { get; set; }
[Required]
public string Title { get; set; } = null!;
public Checkout? Checkout { get; set; }
[NotMapped]
public bool CheckedOut => Checkout != null;
}
I then created a simple Razor view on which to show the books on a grid. Here is what the code for the page looks like:
@{
ViewData["Title"] = "All Books";
}
@(
Html.Kendo().Grid<LibraryMvc.Core.Entities.Book>()
.Name("bookGrid")
.Pageable(p => {
p.PageSizes(new[] {20, 50, 100 });
p.Numeric(true);
p.Input(true);
})
.Editable(e => e.Mode(GridEditMode.InLine))
.Filterable()
.Sortable()
.Scrollable()
.ToolBar(t => t.Create())
.Columns(col => {
col.Bound(c => c.Id).Title("ID");
col.Bound(c => c.Title).Title("Title");
col.Bound(c => c.CheckedOut).Title("Checked Out");
col.Command(com => {
com.Edit();
com.Destroy();
}).Title("Manage");
})
.DataSource(ds =>
ds.Ajax()
.PageSize(20)
.Model(md => {
md.Id(f => f.Id);
md.Field(f => f.Id).Editable(false);
md.Field(f => f.CheckedOut).Editable(false);
})
.Read(r => r.Action("Book_Read", "Book"))
.Create(c => c.Action("Book_Create", "Book"))
.Update(c => c.Action("Book_Update", "Book"))
.Destroy(c => c.Action("Book_Destroy", "Book"))
)
)
When running my app with this code, I noticed that client-side validation would not work on the grid. Nothing would stop me from adding multiple Book rows with empty Titles, despite Title being a [Required] property based on my Book class's Data Annotations:
I assumed I did something wrong, so I scoured the internet and Telerik's support items in hopes of finding something, but then I came across this when inspecting the page's elements in Chrome's dev tools:
Look at the script tag. For whatever reason, the kendoTextBox ended up using the Razor view's ViewData["Title"] property. Oops!
To work around this, I ended up changing my Book class's Title field to BookTitle, as shown below:
[Table("Books")]
public class Book
{
[Key]
public int Id { get; set; }
[Required]
[Column("Title")]
public string BookTitle { get; set; } = null!;
public Checkout? Checkout { get; set; }
[NotMapped]
public bool CheckedOut => Checkout != null;
}
With this property name changed, I was able to get client-side validation to work as needed:
A second workaround involved getting rid of the ViewData["Title"] definition on my Razor view:
Given all this, it looks like something that's generating the client-side validation on the page is getting tripped up over the word "Title" being used by multiple items on the page.
Starting from 2024.1.130 when the TreeList's Edit mode is configured to be InCell and the user interacts with the caret icon instead of collapsing/expanding appropriately the Component enters edit mode for the first column of the row.
Collapsing and expanding of the TreeList should work correctly upon user interaction.
In the NumericTextBox when its options are reconfigured with the setOptions method and the max
property is set to be larger than the value of the widget the number in the k-inner-input gets hidden until the input gets focused.
Change Decimal
buttonThe value within the input disappears until the inputs is refocused by the user.
The value shouldn't change, if it is larger that the one configured in the max
property.
Template Component is not reinitialized when the pane is pinned and unpinned in the DockManager
The Component residing in the pane content is not reinitialized when the pane is pinned and unpinned.
The Component residing in the pane content should be reinitialized when the pane is pinned and unpinned.
Regression introduced with 2024.1.130. Likely related to: #7650
Workaround: remove "px" from the width values, e.g.,
width: "80"
The columns ignore their width setting and each column has 1/3 of the Grid's width.
The columns widths are proportionate to the specified width values (as in R3 2023 SP1).
When the GroupPaging configuration is present the exported Grid doesn't have any data.
The exported Excel only contains headers and footers
The whole content of the Grid must be exported.
### Bug report
When the Drag-and-Drop functionality is enabled, the Update operation is not triggered when editing an existing item.
### Reproduction of the problem
1) Create an InLine editable TreeList;
2) Enable the dragging and dropping of the rows;
3) Edit an existing record and click the "Update" command. If you click at the span element "k-button-text", the Update request does not trigger. If you click outside of this element, the request triggers as expected.
A Dojo sample for reproduction: https://dojo.telerik.com/UQuzAnUN
### Expected/desired behavior
The "InLine" editing should work when the "move" option is enabled.
### Environment
* **Kendo UI version: 2022.2.802
* **jQuery version: 1.12.4
* **Browser: [all]
CheckBox is not serialized correctly when declared in the Template component.
The CheckBox is not serialized correctly when declared in the Template component.
The CheckBox should be serialized correctly when declared in the Template component.
The form is not serialized correctly when declared in the Template component
The Form is not serialized correctly when declared in the Template component.
The Form should be serialized correctly when declared in the Template component.
ContextMenu with encoded items renders shows a span's Html in the item's text. Possibly related to: #7410
The item that has encoded="true" renders show's the Html of the span element that wraps the text of the item. The span has the k-menu-link-text class.
Only the item text should be visible.
### Bug report
When the dateInput option is enabled and the format contains the "ddd" format specifier, the DateTimePicker does not display the date format correctly. Also, when a date is selected, the formatting contains "undefined".
### Reproduction of the problem
1. Define a DateTimePicker with enabled "dateInput" and format equals to "ddd dd/MM/yyyy HH:mm".
2. The format is not correct. When you select a date it is not formatted correctly.
The issue occurs when using the DatePicker, as well.
The last working version is 2023.1.425.
Also, when the "dateInput" is disabled, the date format is displayed as expected.
A Dojo sample for reproduction: https://dojo.telerik.com/oxipADUL
### Expected/desired behavior
The date format must be "day of the week day/month/year hours:minutes" (for example, "Wed 24/01/2024 01:00").
### Environment
* **Kendo UI version: 2023.3.1114
* **jQuery version: 3.7.0
* **Browser: [all]
When the ImageEditor is resized and the Toolbar wraps on 2 rows the canvas of the Component overflows its container.
<div class="demo-section k-content">
@(Html.Kendo().ImageEditor()
.Name("imageEditor")
.Height(900)
.SaveAs(s => s.FileName("image_edited.png"))
.ImageUrl(@Url.Content("~/images/latest-available version.png"))
.Events(e=>e.ImageRendered("rendered").Execute("executed"))
)
</div>
<div class="mt-5 card"> <div class="card-body">48px margin above</div></div>
The margin between the ImageEditor and the following div disappears as the ImageEditor overflows its container
The ImageEditor's should fit in its div container
When the Grid's PopUp Editing is enabled on mobile devices there are additional inputs or missing styling in the PopUp.
Note: The issue doesn't reproduce in a browser's DevTools on desktop
The PopUp is misaligned or its styles are missing on mobile devices
In some cases, when a solution is opened, Visual Studio can crash when it is opened for more than 24 hours with the following exception:
System.Runtime.InteropServices.COMException
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32, IntPtr)
at
Microsoft.VisualStudio.CommonIDE.Solutions.Dte.IdeAutomationObject`1+<>c__23`1[[System.__Canon,
mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib,
Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089]].<RunOnMainThreadHr>b__23_0(OutHrFunc`1<System.__Canon,System.__Canon>)
at Telerik.VSX.Internal.ProjectManagement.ProjectWrapBase.<get_FullName>b__31_0()
at
Telerik.VSX.Internal.VisualStudio.VisualStudioThreadHelper+<>c__DisplayClass0_0+<<RunInMainThread>b__0>d.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
at Microsoft.VisualStudio.Threading.JoinableTask.CompleteOnCurrentThread()
at Telerik.VSX.Internal.VisualStudio.VisualStudioThreadHelper.RunInMainThread(System.Action)
at Telerik.VSX.Internal.ProjectManagement.ProjectWrapBase.get_FullName()
at Telerik.VSX.Internal.ProjectManagement.ProjectWrapBase.get_ProjectFileWrapper()
at Telerik.VSX.Internal.ProjectManagement.ProjectWrapBase+<CheckMainAssemblyReferenceExistsAsync>d__93.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
at Telerik.VSX.ProjectListing.ProjectSearcher+<CheckIfTelerikReferenceExistsAsync>d__18.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Telerik.VSX.ProjectListing.ProjectSearcher+<FilterTelerikProjectsAsync>d__16.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
at Telerik.VSX.ProjectListing.ProjectSearcher+<GetTelerikEnabledProjectsAsync>d__7.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
at Telerik.VSX.Tracking.TrackerBase+<TrackAsync>d__10.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
at Telerik.VSX.Tracking.TrackerBase+<Session_TimeFrameElapsedAsync>d__19.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
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.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
### Bug report
When the Dialog is configured with actions and the Content Security Policy is enabled, it throws an "Invalid template" error.
### Reproduction of the problem
1) Configure a Dialog widget with actions and set the CSP with the following content:
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' https://kendo.cdn.telerik.com https://code.jquery.com; style-src 'self' 'unsafe-inline' https://kendo.cdn.telerik.com;" />
2) Open the browser console to review the error.
A Dojo sample for reproduction: https://dojo.telerik.com/ULOyazUC
### Expected/desired behavior
The Dialog should be rendered correctly without using the 'unsafe-eval' keyword in the "script-src" directive.
### Workaround
Insert the following script before the Dialog initialization:
<script>
kendo.ui.Dialog.fn._mergeTextWithOptions = function(action) { var text = action.text; if(text) { return kendo.isFunction(text) ? text(this.options) : text; } return ""; }
</script>
### Environment
* **Kendo UI version: 2023.2.606
* **jQuery version: 3.4.1
* **Browser: [all]