I've recently started working on a new ASP.NET Core project and one element I've been working on is using a Kendo UI grid with a custom button with a text of "Approve". I'm using the Kendo Bootstrap-v4 style but this seems to be causing issues with the button icons. In my grids the standard edit and delete buttons show with the correct icons but if I set my "Approve" button to have a .IconClass("k-i-check") I actually get the download icon. If I choose the "k-i-edit" .IconClass instead then i seem to get k-i-check. If I choose "k-i-checkmark-outline" I seem to get "k-i-email". Is this something I'm missing or an issue with the latest version of the files I have in place? I'm using "Kendo UI v2019.1.220". This is only on my development machine currently.
Css reference as below:
<link rel="stylesheet" href="~/lib/kendo-ui/styles/kendo.bootstrap-v4.min.css" />Grid column
columns.Command(command => { command.Edit(); command.Custom("Approve").Click("approveUser").IconClass("k-i-checkmark-outline"); }).Width(120);
Thanks in advance for any advice.
Hello,
I have a requirement where the user needs to be given the ability to enter custom text inside a ComboBox if the value is not already there. The ComboBox is bound to a model. I'm not sure what is the best way to accomplish this. Currently, in my controller I check to see if the Id of the entered text is equal to 0, and then I update the model data. I am able to add the new value to the database, afterwards however, I don't know how to refresh/rebind the combobox to show the newly entered data.
Here's my Html-Helper code for the ComboBox:
@(Html.Kendo().ComboBox() .Name("SystemType") .AutoBind(true) .BindTo((System.Collections.IEnumerable)ViewData["SystemTypes"]) .DataTextField("SystemTypeName") .DataValueField("SystemTypeId") .Filter(FilterType.Contains) .HtmlAttributes(new { style = "width: 350px; background-color: white;" }) .Placeholder("...") .ClearButton(false))
Here's the code in my Controller to add a new value:
if (asset.SystemTypeId == 1 || asset.SystemTypeId == 0){ string SystemTypeName = Request.Form["SystemType"]; if(asset.SystemTypeId == 0 && !string.IsNullOrEmpty(SystemTypeName)) { SystemType systemType = new SystemType() { ProjectId = Id, SystemTypeName = SystemTypeName }; _repository.AddSystemType(systemType); } else { ModelState.AddModelError("SystemTypeId", "System Type is Required"); } }Any help is greatly appreciated. Thanks.
Shawn A.

For some reason the grid column headers have started to size larger than the default. I just commented out any styles for the grids in this application that I declared overriding the default and the issue remains.
I can use this style to change the background color but the height has no effect :
.k-grid-header .k-header
{
background-color: red;
height:20px;
}
Please see attached.
the telerik asp.net mvc grid has the @item to access the bound item inside a .Template . There seems to be no documentation on what the replacement is for asp.net core grids . How do we accomplish this? Can you give an example of a .Template that uses a value from the data
I've got a grid with InCell editing and I have only the Add and Save buttons in the header. The grid is in an iframe. The trouble I am having is when I click the batch save button the controller action in the Datasource is not getting called.
<div> @(Html.Kendo().Window() .Name("timecard") .Modal(true) .Actions(actions => actions.Close()) .Draggable(false) .LoadContentFrom("Timecard") .Events(events => events .Close("timecard_OnClose") .Refresh("timecard_OnIframeLoaded") ) .Iframe(true) .Width(1700) .Height(800) .Visible(false) .Deferred(true) )</div>function timecard_OnIframeLoaded(e){ $.ajax({ url: '@Url.Action("Timecard_Load", "Timecard")', type: "POST", datatype: "json", data: { id: employee_key, weekEnding: week_ending}, success: timecard_LoadTimecardSuccess });}
<div id="employeeTimecard"> @(Html.Kendo().Grid<Timecard.Models.TimecardViewModel>() .Name("timecard") .ToolBar(toolbar => { toolbar.Create().Text("ADD").HtmlAttributes(new { title = "Add employee" }); toolbar.Save().Text("SAVE"); }) .Editable(editable => editable.Mode(GridEditMode.InCell)) .Columns(columns => { columns.Bound(p => p.Job).Filterable(false).Sortable(false).Width(115).EditorTemplateName("_InCellAutoCompleteEditor").Title("Job"); columns.Bound(p => p.Task).Filterable(false).Sortable(false).Width(50); columns.Bound(p => p.TaskName).Filterable(false).Sortable(false).Width(150); columns.Bound(p => p.SubTask).Filterable(false).Sortable(false).Width(75); columns.Bound(p => p.SubTaskCompDate).Filterable(false).Sortable(false).Width(75); columns.Bound(p => p.TravelPay).Filterable(false).Sortable(false).Width(75).Title("Travel Pay (Total)"); columns.Bound(p => p.SpecialPayRate).Filterable(false).Sortable(false).Width(75); columns.Bound(p => p.Comment).Filterable(false).Sortable(false).Width(150); columns.Bound(p => p.MonST).Filterable(false).Sortable(false).Format("{0:n1}").Title("Mon ST").Width(40); columns.Bound(p => p.MonOT).Filterable(false).Sortable(false).Width(40); columns.Bound(p => p.MonDT).Filterable(false).Sortable(false).Width(40); columns.Bound(p => p.TueST).Filterable(false).Sortable(false).Width(40); columns.Bound(p => p.TueOT).Filterable(false).Sortable(false).Width(40); columns.Bound(p => p.TueDT).Filterable(false).Sortable(false).Width(40); columns.Bound(p => p.WedST).Filterable(false).Sortable(false).Width(40); columns.Bound(p => p.WedOT).Filterable(false).Sortable(false).Width(40); columns.Bound(p => p.WedDT).Filterable(false).Sortable(false).Width(40); columns.Bound(p => p.ThuST).Filterable(false).Sortable(false).Width(40); columns.Bound(p => p.ThuOT).Filterable(false).Sortable(false).Width(40); columns.Bound(p => p.ThuDT).Filterable(false).Sortable(false).Width(40); columns.Bound(p => p.FriST).Filterable(false).Sortable(false).Width(40); columns.Bound(p => p.FriOT).Filterable(false).Sortable(false).Width(40); columns.Bound(p => p.FriDT).Filterable(false).Sortable(false).Width(40); columns.Bound(p => p.SatST).Filterable(false).Sortable(false).Hidden(true).Width(40); columns.Bound(p => p.SatOT).Filterable(false).Sortable(false).Width(40); columns.Bound(p => p.SatDT).Filterable(false).Sortable(false).Width(40); columns.Bound(p => p.SunST).Filterable(false).Sortable(false).Hidden(true).Width(40); columns.Bound(p => p.SunOT).Filterable(false).Sortable(false).Hidden(true).Width(40); columns.Bound(p => p.SunDT).Filterable(false).Sortable(false).Width(40); columns.Command(command => { command.Destroy().HtmlAttributes(new { title = "Delete highlighted employee"}); }).Title("Options").Width(100); }) .Sortable() .Scrollable() .Filterable() .HtmlAttributes(new { style = "height:650px;width:1615px;" }) .DataSource(dataSource => dataSource .Ajax() .Batch(true) .PageSize(100) .Model(model => model.Id(p => p.EmployeeCode)) .Update(update => update.Action("Timecard_Update", "Timecard")) ) )</div>

Hi
Can anyone help?
How do I include filter id and forgeryToken in Cascading DropDownList?
Thanks in advance.
@(Html.Kendo().DropDownList()
.Name("Transferee")
.HtmlAttributes(new { style = "width:100%" })
.OptionLabel("Select Transferee")
.DataTextField("UName")
.DataValueField("IContactId")
.Filter(FilterType.Contains)
.DataSource(dataSource => dataSource
.Ajax()
.Read(r => r.Url("?handler=Transferee").Data("forgeryToken").Data("filterAgency"))
.Events(e => e.Error("onError").RequestEnd("onRequestEnd")))
.Enable(false)
.AutoBind(false)
.CascadeFrom("Agency")
)
Hi All,
I am a university student. My group mates and I would like to experiment with the scheduler tool within an ASP.NET Core project in Visual Studio. We are having trouble getting it set up in an empty project. We are wondering what we are missing because each of us (3 total) has taken a different approach and still can't seem to figure it out.
Are you supposed to pull everything from the demo project to use in an actual application?
Pulling the info from the documentation pages leaves multiple errors such as referencing an interface that doesn't exist within the project (but we have no idea where to look for the interface or what it should contain). So, we didn't quite figure out that approach either.
Would anyone be willing to share any steps
Any guidance or direction regarding any steps or where to look for instructional help would be greatly appreciated.
