### Bug Report
Picker TagHelpers do not set the "value" attribute in conjunction with the "for" attribute.
### Reproduction of the problem
1. Create a model with a nullable DateTime property:
public class MyModel
{
public DateTime? Birthday { get; set; }
}
2. Declare either a DatePickerFor, DateInputFor, or TimePickerFor TagHelpers and set an initial value:
@model OrderViewModel
<kendo-dateinput for="OrderDate" value="DateTime.Now">
...
</kendo-dateinput>
3. Notice, that the value has not been assigned accordingly.
This behavior is not consistent with the HTMLHelper, as the Value() attribute is taken more predominantly when the PickerFor HtmlHelper is utilized:
@(Html.Kendo().DatePickerFor(m => m.ShippedDate) .Value(DateTime.Today) )
Expose additional API configurations for the Grid's ToolBar
As of recent releases, the Kendo UI Grid Toolbar has been substituted with the Kendo UI Toolbar. This change allows users to add the majority ToolBar.items API options apart from the built-in tools.
As noted within the Kendo UI for jQuery API documentation for the Grid's Toolbar:
"Apart from the built-in tools, the Grid fully exposes the ToolBar.items API. This way you can specify any custom tools in the widget using the components available in the ToolBar itself."
The inherited ToolBar.items API options are not available for the server-side Telerik UI Grid for ASP.NET Core and MVC wrappers as well.
It would be beneficial to the customers if the inherited ToolBar.items API options are available for the server-side Telerik UI Grid for ASP.NET Core and MVC wrappers as well.
### Bug report
When the project is configured for runtime compilation, and the TagHelper DropDownList has custom classes or attributes, NullReferenceException is thrown.
### Reproduction of the problem
1. Create a .NET 8 project and install the Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet package.
2. Define a TagHelper DropDownList and add a custom class:
//Program.cs
builder.Services.AddControllersWithViews().AddRazorRuntimeCompilation();
builder.Services.AddMvc().AddJsonOptions(options => options.JsonSerializerOptions.PropertyNamingPolicy = null);
builder.Services.AddKendo();
//View
<kendo-dropdownlist for="Id" datatextfield="Text" datavaluefield="Value" auto-width="true" class="form-control w-75">
<datasource type="Kendo.Mvc.UI.DataSourceTagHelperType.Ajax">
<transport>
<read url="@Url.Action("GetData", "Home")"/>
</transport>
</datasource>
</kendo-dropdownlist>
3. Run the application and observe the exception: "NullReferenceException: Object reference not set to an instance of an object."
4. When using the HtmlHelper version of the DropDownList or removing the custom class from the TagHelper declaration, the error does not occur.
### Expected/desired behavior
The TagHelper DropDownList must exhibit the same behavior as the HtmlHelper DropDownList.
### Workaround
Add the custom class with jQuery:
<kendo-dropdownlist for="Id" datatextfield="Name" datavaluefield="Id" auto-width="true">
...
</kendo-dropdownlist>
<script>
$(document).ready(function(){
$("#Id").addClass("form-control w-75"); // add the class to the hidden input element
$("#Id").attr("required", "required");
$("#Id").closest("span.k-dropdownlist").addClass("form-control w-75"); // add the class to the wrapper element
});
</script>
### Environment
* **Telerik UI for ASP.NET Core version: 2024.4.1112
* **Browser: [all]
### Bug report
When loading an editor through a partial View using EditorTemplateView(await Html.PartialAsync("PartialViewName")), the following error occurs:
The 'await' operator can only be used within an async lambda expression. Consider marking this lambda expression with the 'async' modifier.
### Reproduction of the problem
@(Html.Kendo().Form<UserViewModel>()
.Name("myForm")
.Items(items =>
{
items.Add().Field(f => f.Username).EditorTemplateView(await Html.PartialAsync("PartialViewName"));
})
)
### Expected/desired behavior
The EditorTemplateView() must accept Html.PartialAsync("PartialViewName").
### Environment
* **Telerik UI for ASP.NET Core version: 2024.4.1112
* **Browser: [all]
In a .NET 7 project when TagHelper Grid is configured and RuntimeCompilation is employed, starting from version 2023.2.606 an unhandled exception is thrown.
When run a runtime error occurs
TagHelper Grid should exhibit the same behavior as HtmlHelper ones.
### Bug report
When building the scripts through the 'npx gulp scripts' command, there is an error "Error: Cannot find module './build/gulp/kendo-version'".
### Reproduction of the problem
Download any of the source bundles (Core, MVC, jQuery) and try to build the scripts.
### Environment
* **Kendo UI version: 2024.4.1112
### Bug report
When you click on the splitbar of a horizontal Splitter, the page scrolls down.
### Reproduction of the problem
1. Create a horizontal Splitter with 2 panes;
2. Set a height of the Splitter;
3. When the page is loaded, focus on the splitbar (click on it or resize the panes). As a result, the page scrolls down.
A Dojo sample for reproduction: https://dojo.telerik.com/uSanOtaW/2
### Expected/desired behavior
The page should not be scrolled vertically.
### Environment
* **Kendo UI version: 2021.3.1207
* **jQuery version: 1.12.4
* **Browser: [all]
The Pickers are not bound to model value when a nullable DateTime is set.
public class MyModel
{
public DateTime? Birthday { get; set; }
}
@(Html.Kendo().TimePickerFor(m => m.Birthday))
The Pickers are not bound to model value when nullable.
The Pickers are not bound to model value when a nullable DateTime is set.
Kendo UI version: 2024.4.1112
jQuery version: x.y
Browser: [all]
### Bug report
When the Virtualization of the MultiColumnComboBox is enabled, the table headers and rows are not aligned correctly.
### Reproduction of the problem
A Dojo sample for reproduction: https://dojo.telerik.com/ORalaWoq
The tables and rows are aligned as expected when using version 2021 R3 SP2 (2021.3.1207).
A temporary workaround:
<style>
.k-table-list .k-table-group-row, .k-table-list .k-table-row {
display: inline-flex;
}
</style>
### Expected/desired behavior
The headers and rows should be aligned correctly when the Virtualization is enabled.
### Environment
* **Kendo UI version: 2022.1.412
* **jQuery version: 1.12.4
* **Browser: [all]
Dojo example.
The Chart's animation does not work when it is nested in the Splitter.
The Chart's animation should work.
When a Grid's row is reordered and then the changes are saved - a Destroy request is sent to the server for the dataItem of the reordered row. This happens even though no changes are applied to dataItem of the reordered row.
The Grid should request the reordered item to be perished from the backend.
### Bug report
The attributes set through the "HtmlAttributes", "ContentHtmlAttributes", and "LinkHtmlAttributes"methods are not applied to the TreeView items.
### Reproduction of the problem
1. Create a TreeView and set attributes by using the "HtmlAttributes", "ContentHtmlAttributes", "LinkHtmlAttributes"methods:
@(Html.Kendo().TreeView()
.Name("treeview-kendo2")
.Items(treeview =>
{
treeview.Add().Text("My Documents")
.SpriteCssClasses("k-icon k-i-globe")
.Expanded(true)
.Url("/")
.HtmlAttributes(new { @class = "fairydust1" })
.ContentHtmlAttributes(new { data_navigate = "navigate_content", @class = "trigger", title = "content_title" })
.LinkHtmlAttributes(new { data_navigate = "navigate_link", @class = "trigger", title = "content_link" });
})
)
2. Run the page and inspect the TreeView item.
### Expected/desired behavior
The attributes are serialized and rendered.
### Environment
* **Kendo UI version: 2021.2.616
* **jQuery version: 1.12.4
* **Browser: [all]
### Bug report
When adding custom attributes to the CheckBox Taghelper, they are not added to the input element.
### Reproduction of the problem
1. Define a CheckBox Taghelper and add 'data-bind="checked: Test"' to its tag:
<kendo-checkbox name="Name" data-bind="checked: Test"></kendo-checkbox>
2. Inspect the CheckBox element and you will see that the "data-bind" attribute is missing.
3. When using the HtmlHelper version of the CheckBox, the attributes added through the HtmlAttributes() option are added as expected.
A REPL sample for reproduction: https://netcorerepl.telerik.com/mIuZlRle01kh6Ly043
### Expected/desired behavior
The specified attributes must be added to the input element of the CheckBox Taghelper.
### Environment
* **Telerik UI for ASP.NET Core version: 2024.2.514
* **Browser: [all]
When the clearSelection method of the ListBox is used for connected ListBoxes the toolbar buttons remain active.
The toolbar items of the ListBox remain active
The toolbar items of the ListBox must be disabled automatically
The issue is reproducible when the Editor is used as an item editor:
editable: {
form: {
buttonsTemplate: "",
items: [{
field: "Title",
label: "Title:"
}, {
field: "Description",
label: "Description:",
editor: "Editor"
}]
}
}
It is not reproducible with editor "TextBox" or "TextArea"
The following js exception is thrown:
kendo.all.js:131959 Uncaught TypeError: Cannot read properties of null (reading 'open')
No exception is thrown and the Editor can be used to edit the field value.
An error for the missing image is thrown:
GET https://localhost:63252/test.png 404 (Not Found)
No error is thrown, since the value of the background-image property has been replaced with "none" in the Editor events and the actual content the Editor visualizes does not use the image:
<tr style="box-sizing: border-box; border-style: solid; border-width: 1px 0px; background-image: none;">
...
</tr>
### Bug report
When using the @Html.EditorFor(m => m) configuration to initialize a MultiSelect TagHelper editor, and passing a specified value for its "id" attribute, the "name" attribute of the <select> element contains a prefix.
### Reproduction of the problem
1. Set the MultiSelect TagHelper as an editor editor of a specified Model property and set the "id" attribute using ViewData:
//Model
[UIHint("CustomMultiSelect")]
public IEnumerable<string> Names { get; set; }
//~.Views/Shared/EditorTemplates/CustomMultiSelect.cshtml
@model IEnumerable<string>
@{
var id = ViewData["id"]?.ToString();
}
<kendo-multiselect for="@Model" placeholder="some custom behavior" bind-to='ViewData["Data"] as List<string>' id='@id'></kendo-multiselect>
2. Define @Html.EditorFor(a=>a.Names, new{id="customId"}) in a form:
@model MyModel
<form id="myForm" data-method="POST" asp-action="Save" asp-controller="Home" class="k-form k-form-md">
<div class="k-form-layout k-d-grid">
<div class="k-form-field">
@Html.EditorFor(a=>a.Names, new{id="customId"})
</div>
</div>
...
</form>
3. When the MultiSelect is loaded, its "name" attribute is "Names.Names" rather than "Names":
When using the HtmlHelper version of the MultiSelect, the "name" attribute is correct:
//~.Views/Shared/EditorTemplates/CustomMultiSelect.cshtml
@model IEnumerable<string>
@{
var id = ViewData["id"]?.ToString();
}
@(Html.Kendo().MultiSelectFor(m => m)
.Placeholder("some custom behavior")
.BindTo((List<string>)ViewData["Data"])
.HtmlAttributes(new { id = @id })
)
### Expected/desired behavior
When using the @Html.EditorFor(m => m) configuration, the "name" attribute of the MultiSelect TagHelper must match the Model property name when the "id" attribute is set to a custom value.
### Environment
* **Telerik UI for ASP.NET Core version: 2024.3.806
* **Browser: [all]
Open this dojo example: https://dojo.telerik.com/BzNkZgSf
The input tooltip shows:
k-editor-link-url
because the input's title attribute is set like this: title="k-editor-link-url"
Instead of the name of a class, the tooltip should show "Web address", "Text", or "ToolTip" respectively.
The custom ordering of the filter values in the Telerik UI ASP.NET Core Grid does not function correctly when using TagHelpers.
A REPL sample for reproduction: https://netcorerepl.telerik.com/wIYNvEvn00CAqNGL14
The filter values should be presented in the same order as specified in the Filterable configuration.