Bug report
TextArea wrapper does not render correctly in v2021.1.224
Reproduction of the problem
Declare a Html.Kendo().TextArea() in ASP.NET project
Current behavior
The TextArea value does not retain.
Expected/desired behavior
TexArea shall render as in previous Kendo Ui versions
Related to Ticket #1509117
Environment
Kendo UI version: 2021.1.224
Browser: [all]
Provide built-in integration of RadioButton / RadioGroup in the Form
i.e. : .Editor(e =>The tag helper's dataSource sets the following values: "page"=1 and "pageSize"=20, even though "server-operation" and "server-paging" are disabled in its configuration.
MultiSelect configuration:
<kendo-multiselect name="multiselect1" style="width:100%"
placeholder="Enter name..."
datatextfield="ShipName"
datavaluefield="OrderID"
min-length="2"
enforce-min-length="true">
<datasource type="DataSourceTagHelperType.Ajax" server-operation="false"
server-paging="false"
server-filtering="false"
server-aggregates="false"
server-grouping="false"
server-sorting="false">
<transport>
<read url="@Url.Action("GetData","Home")" />
</transport>
</datasource>
<popup-animation>
<open duration="500" />
<close duration="500" />
</popup-animation>
</kendo-multiselect>
Action:
public ActionResult GetData([DataSourceRequest] DataSourceRequest request)
{
var result = Enumerable.Range(0, 50).Select(i => new OrderViewModel
{
OrderID = i,
Freight = i * 10,
OrderDate = new DateTime(2016, 9, 15).AddDays(i % 7),
ShipName = "ShipName " + i,
ShipCity = "ShipCity " + i
});
var dsResult = result.ToDataSourceResult(request);
return Json(dsResult);
}
The "page" and "pageSize" values are set, which results in only 20 items being displayed, even though more are returned by the "read" action.
The "page" and "pageSize" should not be set, and the MultiSelect should display all the data returned by the "read" action.
The overlay is not removed when closing an Alert dialog, if there is an open Window with draggable.containment option set.
Dojo example.
The overlay is not removed.
The overlay is removed.
Workaround: dojo.
Reproducible in the Vertical Grouping demo.
After adding 11 or more events, the last event starts overlapping the next resource group slot.
The slot should resize accordingly, based on the number of events shown in it. Events should not be displayed outside of the slot they belong to.
Bug Report
Ticket ID:1486632
When using groupable.sort.compare with client operations and groupPaging, a JavaScript error is thrown:
Reproduction
Environment
2020.3.915
No data is displayed after filtering the second column (expected), but the header is duplicated.
Additional notes: the file has been tested against the Open XML SDK tool and it reports 4 issues related to Fonts, however, the duplication occurs even after modifying the original file and applying an arbitrary font and font-size to the whole document, so that it passes the tool's verification successfully.
No data is displayed and there is no header duplication.
In a Razor Pages project, the Gantt's tasks are not binding if the taskID and parentID fields are strings.
This is a regression introduced in version 2020.3.915.
There are no tasks displayed in the Gantt.
The tasks should be displayed.
I am looking for an extension to the Grid Columns fluent api that adds .Exportable(true or false). Exportable(true) would be the default and indicate that this column does get exported when exporting to Excel (or PDF). Exportable(false) would indicate that the column does NOT get exported.
Imagine the following Grid Definition:
@(Html.Kendo().Grid<Services>
()
.Name("gridMain")
.Columns(columns =>
{
columns.Bound(p => p.ServiceId).ClientTemplateId("rowNumTemplate").Title("Row").Width(50);
//columns.Bound(p => p.ServiceId).ClientTemplateId("cmdsTemplate").Title("Cmds").Width(125).Media("(min-width: 768px)");
columns.Bound(p => p.ServiceCode).Media("(min-width: 768px)");
columns.Bound(p => p.ServiceId).ClientTemplateId("xsTemplate").Title("Service / Desc / Code").Media("(max-width: 768px)");
columns.Bound(p => p.ServiceId).ClientTemplateId("serviceTemplate").Title("Service / Desc").Media("(max-width: 992px) and (min-width: 768px)");
columns.Bound(p => p.ServiceName).Media("(min-width: 992px)");
columns.Bound(p => p.ServiceDescription).Media("(min-width: 992px)");
columns.Bound(p => p.ServiceActive).ClientTemplateId("activeTemplate").Width(60).Media("(min-width: 768px)");
columns.Bound(p => p.ServiceId).ClientTemplateId("btnsTemplate").Title("View/Edit/Del").Width(150);
//columns.Bound(p => p.ServiceId).ClientTemplateId("xsCmdsTemplate").Title("Cmds").Media("(max-width: 768px)");
})
.Scrollable(scrollable => scrollable.Endless(true))
.Pageable(p => p.Numeric(false).PreviousNext(false))
.ToolBar(t => t.Search())
.Search(s => { s.Field(c => c.ServiceCode); s.Field(c => c.ServiceName); s.Field(c => c.ServiceDescription); })
.Resizable(resize => resize.Columns(true))
.ToolBar(t => t.Excel().Text("Excel"))
.Excel(excel => excel
.FileName("ABT_Services.xlsx")
.Filterable(true)
)
.DataSource(dataSource =>
dataSource
.WebApi()
.PageSize(Model.GridPageSize)
.Model(model =>
{
model.Id(p => p.ServiceId);
})
.Events(events => events.Error("errorHandler").RequestEnd("gridMainRequestEnd"))
.Read(read => read.Action("Get", "Services"))
)
)
What I would like to do is define a column like the following:
columns.Bound(p => p.ServiceId).ClientTemplateId("rowNumTemplate").Title("Row").Width(50).Exportable(false);
In the case above, the "Row" column would not be Exported to Excel.
If you take a closer look at the Columns definition above you will see that the configuration is implemented to support responsive page sizing. Because the current implementation of Export to Excel does not allow an Exportable(true/false), I get these columns that I don't want in the exported Excel.
Although there appear to be workarounds (like keeping a second hidden grid -- a poor solution at best), none would be as useful to a Developer as defining an Exportable(true/false) as part of the Column configuration.
Thanks for considering my request.
DropDownTreeItemModel does not properly pass its HtmlAttributes members on populating DropDownTree with BindTo()
In .Net Core application, implement the following view:
@(Html.Kendo().DropDownTree()
.Name("kendoTreeItems")
.BindTo((IEnumerable<DropDownTreeItemModel>)ViewBag.Items)
)
and the following controller:
public IActionResult Index()
{
ViewBag.Items = GetItems();
return View();
}
public IEnumerable<DropDownTreeItemModel> GetItems()
{
IDictionary<string, string> attributes = new Dictionary<string, string>
{
{ "style", "background: red" }
};
List<DropDownTreeItemModel> items = new List<DropDownTreeItemModel>
{
new DropDownTreeItemModel { Text = "Item 1", HtmlAttributes = attributes },
new DropDownTreeItemModel { Text = "Item 2", HtmlAttributes = attributes },
new DropDownTreeItemModel { Text = "Item 3", HtmlAttributes = attributes },
new DropDownTreeItemModel { Text = "Item 4", HtmlAttributes = attributes },
};
return items;
}
The HTML attributes will not be passed to the DropDownTree items.
The HTML attributes should be passed and present in the DropDownTree items.
When assigning the Name of a Telerik UI control, the value specified is used for both the name and id attributes of HTML elements. If the value specified contains a period (ex. a property of a complex model property, ex. Model.Address.Line1) then the "name" attribute will still contain the period (ex. "Address.Line1") but because periods are invalid for the "id" attribute, the periods should get replaced with an underscore by default (ex. "Address_Line1"). Using HTML helpers, this appears to be happening correctly. Using Tag Helpers, on the other hand, does not appear to be sanitizing the id values and instead leaves the period, causing an invalid value to be used and inconsistent results when compared to the HTML Helpers.
Example using the ListBox component:
// Tag Helper, generates this: <select id="ComplexModelProperty.ListBoxTagHelper" name="ComplexModelProperty.ListBoxTagHelper">
<kendo-listbox name="ComplexModelProperty.ListBoxTagHelper" bind-to="new List<string>()"></kendo-listbox>
// HTML Helper, generates this: <select id="ComplexModelProperty_ListBoxHtmlHelper" name="ComplexModelProperty.ListBoxHtmlHelper">
@(Html.Kendo().ListBox()
.Name("ComplexModelProperty.ListBoxHtmlHelper")
.BindTo(new List<string>())
)
Example using the Button component:
// Tag Helper, generates this: <button id="ComplexModelProperty.ButtonTagHelper" name="ComplexModelProperty.ButtonTagHelper" type="button">
<kendo-button name="ComplexModelProperty.ButtonTagHelper">Image icon</kendo-button>
// HTML Helper, generates this: <button id="ComplexModelProperty_ButtonHtmlHelper" name="ComplexModelProperty.ButtonHtmlHelper" type="button">
@(Html.Kendo().Button()
.Name("ComplexModelProperty.ButtonHtmlHelper")
.HtmlAttributes(new { type = "button" })
.Content("Image icon"))
I only tested with these two components to verify this wasn't an issue specific to the ListBox component, but I'm assuming this is a problem with any component when using Tag Helpers. After looking at some of the relevant code, I'm guessing this could be corrected by updating the GenerateId() method in the TagHelperBase class (ex. by calling something like GenerateIdFromName() that would handle sanitizing the value).
I also found this forum post from over two years ago reporting what appears to be this same issue. There was a reply that acknowledged the issue and offered a workaround "until this issue is fixed", however after two years I would think something like this would have already been fixed (a bug that applies to all Tag Helpers, results in invalid HTML being generated, and can be fixed by using a built-in .NET method that was created specifically for this purpose).
If an item is set to expanded="false" (see the "Storage" item in the snippet below) in the PanelBar's tag helper, it displays the "collapse" icon, instead of an "expand" icon:
<kendo-panelbar name="project">
<items>
<panelbar-item text="Storage" expanded="false">
<items>
<panelbar-item text="Wall Shelving"></panelbar-item>
<panelbar-item text="Floor Shelving"></panelbar-item>
<panelbar-item text="Kids Storag"></panelbar-item>
</items>
</panelbar-item>
<panelbar-item text="Lights">
<items>
<panelbar-item text="Ceiling"></panelbar-item>
<panelbar-item text="Table"></panelbar-item>
<panelbar-item text="Floor"></panelbar-item>
</items>
</panelbar-item>
</items>
</kendo-panelbar>
This is caused by incorrect classes being applied to the item. It should have the "k-panelbar-expand k-i-arrow-60-down" classes, instead it has the "k-panelbar-collapse k-i-arrow-60-up" classes.
"k-i-arrow-60-up" icon is displayed.
"k-i-arrow-60-down" icon is displayed.
Reproducible in the demos.
Resize handles duplication
No duplication of the resize handles
We are upgraded from MVC 5 to MVC-Core and using now your core components (latest version).
In our AutoComplete box, we get now a NullReference exception, without changing anything at our codebase.
Generated Script from Kendo MVC-Core:
kendo.syncReady(function(){jQuery("#txtSearchForLink").kendoAutoComplete({"select":insertLink.searchResultSelected,"dataTextField":"Text","filter":"Contains","footerTemplate":jQuery('#searchResultFooterTemplate').html(),"minLength":0,"placeholder":"Suchen","template":jQuery('#searchResultTemplate').html(),"dataSource":{"type":"aspnetmvc-ajax","transport":{"read":{"url":"/Orphy/Search/GetQuickSearchData","data":insertLink.onAdditionalData}},"serverFiltering":true,"serverGrouping":true,"sort":[{"field":"Weight","dir":"desc"}],"group":[{"field":"GroupName","dir":"desc"}],"filter":[],"schema":{"data":"Data","model":{"id":"Id"}}}});});
Debugging:
-> context.Count == 0 -> so Null will returned
-> Here you access the property Memeber of Null ... ?
Call Stack:
System.NullReferenceException: Object reference not set to an instance of an object.
at Kendo.Mvc.Infrastructure.Implementation.FilterNodeVisitor.Visit(PropertyNode propertyNode)
at Kendo.Mvc.Infrastructure.Implementation.PropertyNode.Accept(IFilterNodeVisitor visitor)
at Kendo.Mvc.Infrastructure.FilterDescriptorFactory.Create(String input)
at Kendo.Mvc.UI.DataSourceRequestModelBinder.<>c__DisplayClass2_0.<CreateDataSourceRequest>b__3(String filter)
at Kendo.Mvc.UI.DataSourceRequestModelBinder.TryGetValue[T](ModelMetadata modelMetadata, IValueProvider valueProvider, String modelName, String key, Action`1 action)
at Kendo.Mvc.UI.DataSourceRequestModelBinder.CreateDataSourceRequest(ModelMetadata modelMetadata, IValueProvider valueProvider, String modelName)
at Kendo.Mvc.UI.DataSourceRequestModelBinder.BindModelAsync(ModelBindingContext bindingContext)
at Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BinderTypeModelBinder.<BindModelAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder.<BindModelAsync>d__11.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Mvc.Internal.ControllerBinderDelegateProvider.<>c__DisplayClass0_0.<<CreateBinderDelegate>g__Bind|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeInnerFilterAsync>d__13.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeNextExceptionFilterAsync>d__24.MoveNext() System.NullReferenceException: Object reference not set to an instance of an object.
at Kendo.Mvc.Infrastructure.Implementation.FilterNodeVisitor.Visit(PropertyNode propertyNode)
at Kendo.Mvc.Infrastructure.Implementation.PropertyNode.Accept(IFilterNodeVisitor visitor)
at Kendo.Mvc.Infrastructure.FilterDescriptorFactory.Create(String input)
at Kendo.Mvc.UI.DataSourceRequestModelBinder.<>c__DisplayClass2_0.<CreateDataSourceRequest>b__3(String filter)
at Kendo.Mvc.UI.DataSourceRequestModelBinder.TryGetValue[T](ModelMetadata modelMetadata, IValueProvider valueProvider, String modelName, String key, Action`1 action)
at Kendo.Mvc.UI.DataSourceRequestModelBinder.CreateDataSourceRequest(ModelMetadata modelMetadata, IValueProvider valueProvider, String modelName)
at Kendo.Mvc.UI.DataSourceRequestModelBinder.BindModelAsync(ModelBindingContext bindingContext)
at Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BinderTypeModelBinder.<BindModelAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder.<BindModelAsync>d__11.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Mvc.Internal.ControllerBinderDelegateProvider.<>c__DisplayClass0_0.<<CreateBinderDelegate>g__Bind|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeInnerFilterAsync>d__13.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeNextExceptionFilterAsync>d__24.MoveNext()
Thanks for helping me.
Cyril
<kendo-wizard name="wizard" on-done="onDone">
<wizard-steps>
<wizard-step title="Start">
<wizard-step-buttons>
<wizard-step-button name="next" text="Next"></wizard-step-button>
</wizard-step-buttons>
<wizard-step-content>
</wizard-step-content>
</wizard-step>
<wizard-step title="User details">
<wizard-step-buttons>
<wizard-step-button name="previous" text="Previous"></wizard-step-button>
<wizard-step-button name="done" text="Register"></wizard-step-button>
</wizard-step-buttons>
<wizard-step-content>
</wizard-step-content>
</wizard-step>
</wizard-steps>
</kendo-wizard>
js exception on using the Wizard tag helper in an editor template
no js exceptions on using the tag helper in an editor template
The built-in upload components event cannot be handled through the TagHelper:
<kendo-filemanager name="filemanager">
<upload on-upload="onUpload"></upload>
...
</kendo-filemanager>
The Rating is unresponsive.
The Rating works properly.