Hello,
i guess i've found some bug in the Version 2020.2.617.
I have upgraded from 2020.1.406 to 2020.2.617
after them it is not in the correct way possible for me to hidde or display the correct columns.
If i click the first or second column nothing happend..
after them i get the wrong fields to hidde or display.. if i use the old js files from your CDN
it works again, but i'm not sure what will not be working in our WebApp if i do so.
/Tino
Grid's items are not correctly calculated when a group is expanded and groupPaging is set to "true".
On the expand of the "Assistant Sales Agent" group, the footer displays the following:
On the expand of the "Assistant Sales Representative" group, the footer displays:
The number of the displayed items is incorrectly calculated
The number of the displayed items should be calculated based on the number of the rows inside the opened groups
Hi folks!
I am using the Grid's ColumnMenu with its new ComponentType-property set to "modern" like this:
@(Html.Kendo().Grid<my_fancy_web_application.ViewModels.ProjectListViewModel>()
.Name("myGrid")
.Editable(editable => editable.Mode(GridEditMode.InLine).DisplayDeleteConfirmation("Willst Du diesen Eintrag wirklich löschen?"))
.Sortable()
.Scrollable()
.Pageable(pageable => pageable.Enabled(false))
.ColumnMenu(columnMenu => columnMenu.ComponentType("modern"))
// ... going on with some further definitions
)
In the <head>-Tag of my _Layout.cshtml file, I have set the Kendo Culture to Swiss German:
<script>kendo.culture("de-CH")</script>
What I now observed is, that the buttons "Apply" and "Reset" did not get translated properly and remain in English (see Column_Menu_Reset_Apply_Button.png). Whereas other messages are correctly translated.
I tried to find out which message property was set there, so that I could add it manually to the "kendo.messages.de-CH.min.js" (as by the way I still have to do for e.g. the Grid's searchbar placeholder "Search...").
In the loaded kendo.all.min.js (2021.1.330) I discovered, that there was no message property in place, and the texts were rather hard-coded:
'<div class="k-columnmenu-actions">' + '<button class="k-button" type="button">Reset</button>' + '<button class="k-button k-primary" type="button">Apply</button>' + '</div>' + '</div>'
With the Chrome's dev tools and the source map, I found the above code on line 55815 by searching for the class "k-columnmenu-actions".
Could you please change the mentioned code to make use of the kendo.messages-properties and update the culture-specific kendo.messages files accordingly?
Thanks in advance!
Kind regards,
Janick
Currently a DateTime property of a nested object does not get parsed when used as a column in the Grid:
public class MyClass
{
public MyOtherClass Item{get;set;}
}
public class MyOtherClass
{
public DateTime CreatedAt{get;set;}
}
and Formatting cannot be applied:
columns.Bound(p => p.Item.CreatedAt).Title("Time").Format("{0:D}");
Hi
Just to let you know that the Demo for the Grid SignalR feature is showing an error.
(see screen dump attached)
Thanks
Darryl
Grid throws an error when the default behavior of the pdf export event is prevented.
Inspect the console tab and note the submitted error:
No error should be thrown
When a Switch is used as an Editor in InCell editing, clicking on it closes the edit mode.
This is a regression introduced with v 2022.1.119
Refer to ticket 1557280 for a runnable sample
State should be changed
Kendo.Mvc.UI.GridBoundColum.SerializeValues throws an exception when using an Enum, decorated with FlagsAttribute.
This is a regression introduced with v2022.2.510. Possibly related to telerik/kendo@423e1e9
Using a ForeignKey column, bound to Enum, where the Enum has the FlagsAttribute throws an exception:
columns.ForeignKey(m => m.MyEnum, ....); // MyEnum is an enum with the FlagsAttribute
Using an Enum, decorated with FlagsAttribute should be possible, as in previous versions and an exception should not be thrown.
We noticed while testing the latest version (UI for ASP.NET Core R2 2022 (version 2022.2.510)) that hidden grid columns are incorrectly exported to Excel. Rolling back one version resolves the issue so it appears to be an issue in the new version.
I verified it in the grid demos on your site, and also verified that the bug is not present in the jQuery version.
jQuery version - no issue
ASP.NET Core version - BUG
When deleting a record in a grouped editable Grid, the "Destroy" action is triggered twice.
The "Destroy" action should not be triggered twice.
New lines are not removed from the serialized Toolbar.ClientTemplate when multiline content is provided and the Grid is in a DetailTemplate, thus generating an invalid template and causing a Chrome Exception.
The following template configuration is valid and works for the parent grid, but not for child grids:
.ToolBar(toolbar => toolbar.ClientTemplate(@"
<div class='filter'>
<span class='k-textbox k-display-flex auto-filter''>
<input id='search' autocomplete='off' class='k-input' placeholder='Search...' title='Search...' type='text'>
<span class='k-input-icon'><span class='k-icon k-i-search'></span></span>
</span>
</div>
"))
Invalid template is generated
A valid template should be generated
Expose configuration options for setting the options - Size, ThemeColor, FillMode and Rounded - of the Grid's command buttons and toolbar buttons, as possible for a simple Button component.
Adding a separate configuration for the Cancel command button would also be beneficial. For example:
.Columns(columns => { columns.Bound(p => p.ProductName); columns.Bound(p => p.UnitPrice).Width(140); columns.Bound(p => p.UnitsInStock).Width(140); columns.Bound(p => p.Discontinued).Width(100); columns.Command(command => command.Destroy().ThemeColor(ThemeColor.Error)).Width(150); }) .ToolBar(toolbar => { toolbar.Create().ThemeColor(ThemeColor.Info).Size(ComponentSize.Large); toolbar.Save().ThemeColor(ThemeColor.Success); toolbar.Cancel().ThemeColor(ThemeColor.Warning); })
Having a grid with a similar column setup will result in an error.
.Columns(columns =>
{
columns.Bound(p => p.UnitsInStock).HtmlAttributes(new { @class = "#: UnitsInStock == 39 ? 'test' : 'a' #" });
})
Having a grid with a similar column setup should not result in an error.
.Columns(columns =>
{
columns.Bound(p => p.UnitsInStock).HtmlAttributes(new { @class = "#: UnitsInStock == 39 ? 'test' : 'a' #" });
})
If I put the Grid into a kendo-template for the TileLayout control, the ClientTemplate does not work properly. It only gets called once regardless of the number of items in the grid and the data is not being passed in.
This is my column definition:
columns.Bound(c => c.DocumentKey).Title(" ").ClientTemplate("#=CommandTemplate(data)#").Width(70);
And I am calling the .ToClientTemplate() on the Grid. Everything else work great except for this one issue.
I have not been able to find any other info, so what am I missing?
The second criterion DropDownList in the Filter Menu does not show records upon interaction:
The second criterion DropDownList in the Filter Menu should show records upon interaction:
### Bug report
When dragging and dropping a row within the Grid, the DOM element of the drag handle receives duplicated classes and styles.
### Reproduction of the problem
1) Enable the Drag & Drop functionality of the Grid.
2) Drag and drop a row within the Grid.
3) Inspect the DOM element of the drag handle - it has multiple duplicated classes and styles:
A Dojo sample for reproduction: https://dojo.telerik.com/IRotEKEX
### Environment
* **Kendo UI version: 2023.2.606
* **jQuery version: 1.12.4
* **Browser: [all]
Currently, calling the ClientTemplate method of the Grid's ToolBar overrides any previously defined commands.
It would be really useful to expose an option to use the Template component to define a custom command for the Grid's ToolBar, instead of having to rewrite the entire TollBar in the ClientTemplate configuration.
I am using the Grid with two editor template bound to viewdata to populate the components.
Now this is code that I wrote in 2017 that I recent upgraded to .NET 7 ASP Core and has work all those years with no issue. So I think this may be a regression in the grid code.
I have embedded the relevant code leaving out the grid views custom javascript since it isn't relevant.
The behavior that I am seen is that the the grids model properties that do NOT use a customer editor template are not being bound when the save event fires.
public class AlertRuleGridViewModel
{
public int Id { get; set; }
[UIHint("ComponentEditor")]
public string? Component { get; set; }
[UIHint("EmailAddress")]
public string? Email { get; set; }
[UIHint("TypeEditor")]
public string? Type { get; set; }
[UIHint("Boolean")]
public bool Enabled { get; set; }
}
<div class="container alert-rules-grid">
@(Html.Kendo().Grid<AlertRuleGridViewModel>()
.Name("alert-grid")
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(l => l.Id);
model.Field(field => field.Id).Editable(false);
model.Field(field => field.Type).DefaultValue(ViewData["defaultType"] as String);
})
.PageSize(12)
.Sort(a => a.Add("Id").Descending())
.Read(read => read.Action("GetRules", "Alerts").Data("additionalData"))
.Create(update => update.Action("UpdateRule", "Alerts"))
.Update(update => update.Action("UpdateRule", "Alerts"))
.Destroy(destroy => destroy.Action("DeleteRule", "Alerts"))
.Events(e => e.Error("gridErrorHandler"))
)
.Columns(columns =>
{
columns.Bound(b => b.Id).Title("Id").Visible(true).Width("4%");
columns.Bound(b => b.Component).Title("Component").EditorTemplateName("ComponentEditor").Visible(true);
columns.Bound(b => b.Email).Title("Email").Visible(true);
columns.Bound(b => b.Type).Title("Log Type").EditorTemplateName("TypeEditor").Visible(true);
columns.Bound(b => b.Enabled).Title("Enabled").ClientTemplate("#=renderStatus(data)#").Visible(true);
columns.Command(command =>
{
command.Edit();
command.Destroy();
});
}
)
.ToolBar(toolBar =>
{
toolBar.ClientTemplateId("toolBarTemplate");
})
.Events(events =>
{
events.Cancel("onCancelEdit");
events.Save("onSave");
}
)
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Pageable() // Enable paging
.Sortable() // Enable sorting
.Scrollable(s => s.Height("auto"))
.Resizable(resize => resize.Columns(true))
)
</div>
I suspect the issue is the generated html for the input that used the editor template.
The data-bind attribute is set to "value:Component.Component" which should be "value:Component"<td class="k-table-td" role="gridcell" data-container-for="Component">
<span class="k-input k-combobox k-combobox-clearable k-input-solid k-input-md k-rounded-md k-valid" style="">
<input name="Component.Component_input" class="k-input-inner k-valid" type="text" autocomplete="off" title="" role="combobox" aria-expanded="false" style="" tabindex="0" aria-disabled="false" aria-readonly="false" aria-busy="false" aria-autocomplete="none" aria-controls="Component_Component_listbox" data-bind="value:Component.Component_input">
<span unselectable="on" class="k-clear-value k-hidden" title="clear" role="button" tabindex="-1">
<span class="k-svg-icon k-svg-i-x" aria-hidden="true">
<svg viewBox="0 0 512 512" focusable="false" xmlns="http://www.w3.org/2000/svg">
<path d="M416 141.3 301.3 256 416 370.7 370.7 416 256 301.3 141.3 416 96 370.7 210.7 256 96 141.3 141.3 96 256 210.7 370.7 96l45.3 45.3z"/>
</svg>
</span>
</span>
<button type="button" class="k-input-button k-button k-button-md k-button-solid k-button-solid-base k-icon-button" aria-label="expand combobox" role="button" tabindex="-1">
<span class="k-svg-icon k-svg-i-caret-alt-down k-button-icon" aria-hidden="true">
<svg viewBox="0 0 512 512" focusable="false" xmlns="http://www.w3.org/2000/svg">
<path d="M256 352 128 160h256L256 352z"/>
</svg>
</span>
</button>
<input id="Component_Component" name="Component.Component" type="text" value="" data-role="combobox" aria-disabled="false" aria-readonly="false" style="display: none;" data-bind="value:Component.Component"/>
<script>kendo.syncReady(function(){jQuery("#Component_Component").kendoComboBox({"dataTextField":"Name","dataValueField":"Value","valuePrimitive":true,"dataSource":[{"Name":"AppLog.Common.Test","Value":"AppLog.Common.Test"},{"Name":"AppLog.WebAPI","Value":"AppLog.WebAPI"},{"Name":"BadgeReader","Value":"BadgeReader"},{"Name":"CCS.WebUI","Value":"CCS.WebUI"},{"Name":"LVCVA.AppLog.Internal.Web","Value":"LVCVA.AppLog.Internal.Web"},{"Name":"LVCVA.AppSecurity.Domain","Value":"LVCVA.AppSecurity.Domain"},{"Name":"Registration.WPF.UI","Value":"Registration.WPF.UI"},{"Name":"spLogApplicationMessage","Value":"spLogApplicationMessage"}]});});</script>
<span class="field-validation-valid" data-valmsg-for="Component" data-valmsg-replace="true"/>
</td>
<td class="k-table-td" role="gridcell" data-container-for="Type">
<span title="" class="k-picker k-dropdownlist k-picker-solid k-picker-md k-rounded-md k-valid" unselectable="on" role="combobox" aria-expanded="false" tabindex="0" aria-controls="Type_Type_listbox" aria-disabled="false" aria-readonly="false" aria-busy="false" aria-describedby="e73b8727-5e28-4d9b-9faa-df8239f54aa5" style="">
<span id="e73b8727-5e28-4d9b-9faa-df8239f54aa5" unselectable="on" class="k-input-inner">
<span class="k-input-value-text"/>
</span>
<span role="button" class="k-input-button k-button k-button-md k-button-solid k-button-solid-base k-icon-button" aria-label="select" type="button">
<span class="k-svg-icon k-svg-i-caret-alt-down k-button-icon" aria-hidden="true">
<svg viewBox="0 0 512 512" focusable="false" xmlns="http://www.w3.org/2000/svg">
<path d="M256 352 128 160h256L256 352z"/>
</svg>
</span>
</span>
<input id="Type_Type" name="Type.Type" type="text" value="" data-role="dropdownlist" style="display: none;" data-bind="value:Type.Type"/>
<script>kendo.syncReady(function(){jQuery("#Type_Type").kendoDropDownList({"dataTextField":"Type","dataValueField":"Value","valuePrimitive":true,"dataSource":[{"Type":"Critical","Value":"Critical"},{"Type":"Error","Value":"Error"},{"Type":"Warning","Value":"Warning"},{"Type":"Information","Value":"Information"},{"Type":"Verbose","Value":"Verbose"},{"Type":"Start","Value":"Start"},{"Type":"Stop","Value":"Stop"},{"Type":"Suspend","Value":"Suspend"},{"Type":"Resume","Value":"Resume"}]});});</script>
<span class="field-validation-valid" data-valmsg-for="Type" data-valmsg-replace="true"/>
</td>