I have a grid with the DataSource property specified as:
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(10)
.Events(e=>e.Error("getPoliciesError"))
.Read(read => read.Action("Applications_Read", "MultiSearch")
.Data("getPolicyFilter")
)
)
Initially, I was not specifying PageSize at all, however, when Applications_Read was called, PageSize was always 10 (which is what I wanted) so I assumed that was the default. Then we started getting errors where it was coming through as 0. So I added the PageSize method on the initializer. Now the error where it comes through as 0 is rare, but still happens occasionally.
Has anyone encountered this? For now I can fix it by just adding code to the Applications_Read method saying if it comes through as 0, set to 10, however that will be irritating as we add many more grids with different and possibly customizable page sizes.
Good day all!
trying to pop up to a new webpage from a grid. I want to pop it up in a controlled manner meaning not new window or tab rather just set the parameters of the window; hence I am using a javascript to do the window popup.
Anyways here is how I am building it:
columns.Bound(p => p.Tracking).ClientTemplate(
"<a style='text-decoration:underline' target='_blank' href='javascript:popWindow('../myHinkleyCust/HLI_Tracking.aspx?Close=1&HideMenu=1&o= #= OrderNumber # ')'>Tracking" + "</a>"
).HtmlAttributes(new { @class = "text-center" }).HeaderHtmlAttributes(new { @class = "fw-bold text-center" }).Width(125);However the script doesn't build correctly and my javascript looks like this:
In other words it breaks at the first '
Any help would be much appreciated :)

It is my checkbox code
<div class="row">
<div class="form-group">
<label class="form-label">
<span><b>@ResourceManagerClass.GetResource("CCTV Available", ProjectSession.Employee.LanguageId)</b></span>
@Html.Kendo().CheckBoxFor(x => x.IsCCTVAvailable).Checked(true).Enable(false).HtmlAttributes(new { @class = "form-control", @onclick = "ManageCCTVCameraInputBox(event)" }).ToClientTemplate()
</label>
<br />
<label class="form-label">
@ResourceManagerClass.GetResource("CCTV Detail", ProjectSession.Employee.LanguageId)
</label>
<br />
@(Html.TextAreaFor(x => x.CCTVDetail, 3, 5, new { @class = "form-control textAreaWith" }))
</div>
</div>
It is my function
function ManageCCTVCameraInputBox(e) {
debugger
if (e != undefined) {
if (e.currentTarget.checked && e.currentTarget.id == "IsCCTVAvailable") {
$('#CCTVDetail').prop('disabled', false);
} else {
$('#CCTVDetail').prop('disabled', true);
}
} else {
if ('@Model.IsCCTVAvailable' == "True") {
$('#CCTVDetail').prop('disabled', false);
}
else {
$('#CCTVDetail').prop('disabled', true);
}
}
}This code is working fine in kendo 2020.1.114 after upgrading the checkboxes are not working so I have added Toclienttemplate() at the end of the textbox after adding Toclienttemplate() it is showing error unexpected error<
So I didn't made any changes in script also but from where it is binding I didn't get it
Can anyone suggest me a answer or any reference link
Thanks

Hello folks
I got this one nearly done. I can see that it is hitting my controller in the background but the refresh just keeps spinning :)
@model myHinkleyWebApp.Models.ItemInventory
<div id="table_data"><hr /><div class="row"><div class="col-12 padding-0"><h5>Check Product Availability</h5><div class="k-d-flex k-justify-content-left" style="padding-top: 54px;"><div class="k-w-100 text-left">
@{Html.RenderPartial("../Shared/EditorTemplates/Item_Search_Editor");}
</div><div class="k-w-200 text-left"><input id="btnSubmit" type="submit" style="margin-left: 25px;" value="Submit" class="btn btn-outline-primary" name="submit" /></div></div>
@(Html.Kendo().Grid<myHinkleyWebApp.Models.ItemInventory>()
.Name("ItemInventory")
.Columns(columns => {
columns.Bound(p => p.Item_no);
columns.Bound(p => p.Family);
columns.Bound(p => p.Status);
columns.Bound(p => p.DNPrice);
columns.Bound(p => p.MapPrice);
columns.Bound(p => p.QuantityAvailable);
columns.Bound(p => p.QuantityConfirmed);
columns.Bound(p => p.ConfirmedPromiseDate);
//columns.Bound(p => p.inventory_id).Title("").ClientTemplate("<a href='" + Url.Action("Delete", new { id = "#=inventory_id#", m_id = "#=customer_id#" }) + "'>Delete</a>");
//columns.Command(command => command.Destroy()).Width(150);
})
.ToolBar(tools => tools.Excel())
//.Editable(editable => editable.Mode(GridEditMode.InCell))
.Pageable()
.Navigatable()
.Sortable()
//.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(10)
.Batch(true)
.ServerOperation(false)
.Events(events => events.Error("error_handler"))
//.Model(model => { model.Id(p => p.inventory_id); model.Field(p => p.inventory_id).DefaultValue(Guid.Empty); model.Field(p => p.customer_id).DefaultValue(Guid.Empty); })
//.Create("Item_Create_Update", "HLI_Customer_Specific_Inventory", new { CusNo = Model.CusNo })
//.Read("SearchItems_ByNameOrFamily", "ItemInventory", new {search_phrase = ViewBag.SearchPhrase})
//.Update("Item_Create_Update", "HLI_Customer_Specific_Inventory", new { CusNo = Model.CusNo })
//.Destroy("Item_Destroy", "HLI_Customer_Specific_Inventory", new { CusNo = Model.CusNo })
)
)
</div><br /><br /></div></div><script>
function error_handler(e) {
if (e.errors) {
var message = "Errors:\n";
$.each(e.errors, function (key, value) {
if ('errors' in value) {
$.each(value.errors, function () {
message += this + "\n";
});
}
});
alert(message);
}
}
$("#btnSubmit").click(function () {
var ItemInventory = $("#ItemInventory").data("kendoGrid");
$filter = new Array();
var ITEM = $("#item_no").val();
$.ajax({
type: "POST",
url: "/ItemInventory/SearchItems_ByNameOrFamily",
data: { search_phrase: ITEM },
dataType: "json",
success: function (result) {
var ds = new kendo.data.HierarchicalDataSource({
data: result
});
ItemInventory.setDataSource(ds);
ItemInventory.read();
ItemInventory.refresh();
}
});
//ItemInventory.dataSource.read();
});
</script>
After I click the button the grid is just spinning here is a view of that:
So really the help I need is with this javascript here:
$("#btnSubmit").click(function () {
var ItemInventory = $("#ItemInventory").data("kendoGrid");
$filter = new Array();
var ITEM = $("#item_no").val();
$.ajax({
type: "POST",
url: "/ItemInventory/SearchItems_ByNameOrFamily",
data: { search_phrase: ITEM },
dataType: "json",
success: function (result) {
var ds = new kendo.data.HierarchicalDataSource({
data: result
});
ItemInventory.setDataSource(ds);
ItemInventory.read();
ItemInventory.refresh();
}
});
//ItemInventory.dataSource.read();
});
To summarize I have a auto complete text box where I am entering an item. Then i want to push the button and refresh my grid which will pass the
item number and search for it and bring it back down in the grid!
Any help would be greatly appreciated!
Anyways here is my front end code here
Good day,
i Just updated kendo ui mvc project to the latest version currently out yesterday. now its broken.
before upgrade
after upgrade


Hi
Im struggling with figuring out what is wrong in my code. I have a DropdownList made like this:
@(Html.Kendo().DropDownListFor(model => model.CitizenAppartmentEnrollmentType)
.Name("booking_CitizenAppartmentEnrollmentTypeDropdown")
.DataSource(s => { s.Read(r => { r.Action("GetEnrollmentTypeList", "Booking"); }); })
.DataTextField("EnrollName")
.DataValueField("EnrollId")
.Template("<span class=\"booking_EnrollmentTypeDropdownItem\"><span class=\"bookingColorBox\" style=\"background-color:#=data.EnrollColor#;\"></span><span>#=data.EnrollName#</span></span>")
.ValueTemplate("<span class=\"booking_EnrollmentTypeDropdownItem\"><span class=\"bookingColorBox\" style=\"background-color:#=data.EnrollColor#;\"></span><span>#=data.EnrollName#</span></span>")
.Height(400)
.Events(e => { e.Change("booking_Dialog_EnrollmentType_DropdownOnChangeEvent"); })
.HtmlAttributes(new { style = "width:375px", data_bind = "value:CitizenAppartmentEnrollmentType" })
)When I comment out the Template and ValueTemplate lines, the result looks like in the attached image "without Template". And when its not commented out the result becomes like in the other screenshot.
Heres the c# controller being called:
public class BookingController : Controller {
private GS gs = new GS();
public ActionResult GetEnrollmentTypeList() {
if (TempData.ContainsKey("GS")) {
gs = (GS)TempData["GS"];
TempData.Keep();
}
if (gs.EnrollementTypeDic.ContainsKey(gs.CurrentFloorId)) {
var enrollTypes = gs.EnrollementTypeDic[gs.CurrentFloorId];
var booking_CitizenAppartmentEnrollmentTypeDropdown = enrollTypes.Select(x => new {
EnrollId = x.Id,
EnrollName = x.Name,
EnrollColor = x.Color.Remove(1, 2)
});
return Json(booking_CitizenAppartmentEnrollmentTypeDropdown, JsonRequestBehavior.AllowGet);
}
return Json(null, JsonRequestBehavior.AllowGet);
}
}
The Controller 100% surely doesnt call the return Json(null); part, and debugging shows that the data being fed to the return Json, is exactly what i want.
I need the EnrollColor variable for making a small colored box in front of the EnrollName. Thats what the template html is for in my case.
I followed this demo, where the first dropdown with the Categories is very similar to what i need, except I need simply some colored boxes, and not images. But should function just the same. And I also tried #: data.EnrollName # aswell as #= data.EnrollName # .. And if I dont put the .data there, the widget casts an error.
Any help please :)

Greetings,
We are using the kendo editor for asp.net MVC. I need to apply some custom styling to tables created with the Add Table Wizard. I see that the wizard provides the ability to add a css class to the table. I am wondering if there is a way I could have a css class added automatically anytime a user creates a table with the wizard. I am trying to avoid having the users type in that css class value every time they create a table. It would be ideal if it could happen in the background, but populating the text box on the wizard with the class name would also work.
Any help would be appreciated.
Thanks,
Bob
I have an application with a Kendo MVC ToolBar including buttons with french text or including ampersands such as "R&D".
This used to display correctly as "R&D" but since a recent update of the Telerik MVC controls, it displays encoded as "R&D".
If there is an apostrophe, a text like "En attente d'approbation" will show as "En attente d&#39;approbation".
I can reproduce this problem in your demos, for example see:
Kendo UI demo
https://dojo.telerik.com/ErEXiBul
Telerik MVC demo
https://dojo.telerik.com/egulokat
Is there any way to get this to display as expected? I tried different things but it always show up with & text on the screen which is bad.
Thank you!
Hello,
I am struggling with why my Save button on my Kendo Grid is not calling my update action (inline edit mode). The edit column uses a dropdown list editor template. The dropdown list editor fills fine with my values and I can select one. But when I click the Save button (from toolbar) it does not call my add function in the controller. I see no errors in F12 utility. Any help is appreciated as I've been struggling with this all day.
Here is my relevant code:
Edit Grid:
<style>
.k-grid-content td {
position: relative;
}
.k-grid .k-grid-header .k-header .k-link {
height: auto;
}
.k-grid .k-grid-header .k-header .k-column-title .k-header {
white-space: normal;
}
</style>
@{
ViewData["Title"] = "Administration";
}
<div style="margin-left:10px; margin-top:10px">
<div>Manage Assignees</div>
<div class="row" style="margin-top:10px">
<div class="col-auto">
@(
Html.Kendo().Grid<Assignees>()
.Name("grid")
.Width("250px")
.Columns(columns =>
{
columns.Bound(p => p.SortName).Width(130).Title("Assignee").EditorTemplateName("AssigneesAdd");
})
.Sortable(true)
.Navigatable()
.Scrollable(scr => scr.Height(200))
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Selectable()
.AutoBind(true)
.ColumnMenu(false)
.ToolBar(tb =>
{
tb.Create().Text("New");
tb.Save().Text("Save").CancelText("Cancel");
})
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("GetAssigneesForAddGridDisplay", "Home").Type(HttpVerbs.Post))
.Update(update => update.Action("AddAssigneeRecord", "Home").Type(HttpVerbs.Post))
.Destroy(destroy => destroy.Action("DeleteAssigneeRecord", "Home").Type(HttpVerbs.Post))
.Events(e => e.Error("onError"))
.Batch(false)
.Model(model =>
{
model.Id(p => p.SortName);
model.Field(p => p.SortName);
})
)
.Deferred()
)
</div>
</div>
</div>
@section Scripts{
@Html.Kendo().DeferredScripts()
<script>
$(document).ready(function () {
});
function onError() {
@*window.location='@Url.Action("Index", "Error")';*@
}
</script>
}
===============================================
Controller Add Function called by .Update event in grid
[HttpPost]
public async Task<ActionResult> AddAssigneeRecordAsync([DataSourceRequest] DataSourceRequest request, SelectListItem assigneeRecord)
{
try
{
await _dataService.AddAssigneeRecordAsync(assigneeRecord);
return Json(await new[] { assigneeRecord }.ToDataSourceResultAsync(request, ModelState));
}
catch (Exception ex)
{
await _dataService.LogExceptionAsync("HomeController", "AddAssigneeRecordAsync", _username, ex);
return BadRequest();
}
}
===============================================
DropDownList editor template("AssigneesAdd"):
@using Estimating_State_Licensing_Certification.Controllers
@using Kendo.Mvc.UI
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, Kendo.Mvc
@model string;
@(Html.Kendo().DropDownListFor(m => m)
.DataValueField("Text")
.DataTextField("Text")
.Filter("startswith")
.OptionLabel("Select an Employee")
.DataSource(source =>
{
source.Read(read =>
{
//this is the edit template used for the Admin assignee grid for adding NEW assignees
read.Action("GetAssigneesForAdminAdd", "Home").Type(HttpVerbs.Post);
});
})
)
==============================================
"Assignees" class/entity used by the grid
public class Assignees
{
public string? SortName { get; set; } = string.Empty;
}
Thanks!
Acadia
