I have a problem trying to handle server message error on client side after a read event on grid component
my grid is setting up:
@(Html.Kendo().Grid<myModel>().GetPageableGrid(gridName)
.Name(gridName)
.AutoBind(true)
.DataSource(dataSource => dataSource
.Custom()
.Type("aspnetmvc-ajax")
.PageSize(10)
.ServerPaging(true)
.ServerSorting(true)
.ServerFiltering(true)
.Transport(transport => transport
.Read(read => read.Action("search", "test"))
.Destroy(e => e.Action("delete", "test"))
)
.Schema(schema => schema
.Errors("Errors")
.Model(model =>
{
model.Id(p => p.modelID);
})
)
.Events(events =>
{
events.Error("OnRequestError");
events.RequestEnd("OnRequestEnd");
})
) ....
the javascript function:
function OnRequestError(e) {
alert(e.errors); // show 'undefined'
}
in the controller:
DataSourceResult result = new DataSourceResult
{
Errors = new { message }
};
return new JsonResult(result);
json response look like:
{"Data":null,"Total":0,"AggregateResults":null,"Errors":{"message":"The method or operation is not implemented."}}
I cant reach errors property on OnRequestError, I tryed differents aproacches but not results yet it is alway 'undefined'
I apreciate any help.
Hey,
so what i would like to achieve is to simply add a column to the grid, which has a button in it acting as a link. However the link needs 3 parameters to be passed to the url, which i need to take from the data source. How can i achieve that?
Used to do it like this within a table:
<a class="btn btn-light border" role="button" asp-controller="X" asp-action="Create" asp-route-id="@j.Name" asp-route-jId="@j.JId" asp-route-mId="j.MId">Open</a>
Thank you!
Regards,
Peter
Hello !
I'm testing the latest version of the Grid (2019.1.220, VS 2017, asp.net core 2.2, razor pages).
I'm using the Ajax Binding, and everything is working fine when using IISExpress. When I switch to using a local instance of IIS (version 10 on a windows 10-1803), I get a 404 error in the chrome console with the following message:
Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost/Index?handler=Read
I've tried the [Web Resources Troubleshooting] page, specifically the section discussing 404, and added the telerik webresource handler to my web.config as follows:
<add name="Telerik.Web.UI.WebResource" path="Telerik.Web.UI.WebResource.axd" verb="*" type="Telerik.Web.UI.WebResource"/>
the full web.config is as follow:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
<add name="Telerik.Web.UI.WebResource" path="Telerik.Web.UI.WebResource.axd" verb="*" type="Telerik.Web.UI.WebResource"/>
</handlers>
<aspNetCore processPath="bin\IISSupport\VSIISExeLauncher.exe" arguments="-argFile IISExeLauncherArgs.txt" stdoutLogEnabled="false">
<environmentVariables />
</aspNetCore>
</system.webServer>
</location>
</configuration>
Any ideas on why I'm still getting the same error ?
Thanks !
I have a multi-step View. In the first Partial I want to capture the id of a Patient from a Kendo Grid. I need to retain that value into the @Model then move to the second Partial. In this second Partial I then capture scheduling information. No record is persisted until I have data from both Partial Views.
Questions:
hi
i noticed the Checkbox is not working in the .net core Grid (inline edit) mode. i can see that in your demo itself https://demos.telerik.com/aspnet-core/grid/editing-inline
is this a known issue are there any work arounds
Regards,
Rubesh
Hi,
In everything I've read in both the docs and the demos you use a separate controller for the Read and ValueMapper functions associated with the virtualized combobox. The code below is taken from teh virtualizationcontroller.cs in your demo. I am trying to use Razor exclusively and … in theory … I shouldn't need a separate controller class. However, the page I am trying to use the combobox on is the index.cshtml under areas\identity\pages\account\Manage.
The markup, taken from you demo, for the combo is as follows:
@(Html.Kendo().ComboBox()
.Name("orders")
.DataTextField("ShipName")
.DataValueField("OrderID")
.HtmlAttributes(new { style = "width:100%" })
.Template("#= OrderID # | For: #= ShipName #, #= ShipCountry #")
.Height(290)
.DataSource(source => {
source.Ajax()
.PageSize(80)
.Read("Virtualization_Read", "ComboBox");
})
.Virtual(v => v.ItemHeight(26).ValueMapper("valueMapper"))
)
Please notice the .Read("Virtualization_Read", "ComboBox"). It's my understanding that "ComboBox" is the controller. How would I point/route that to the razor cshtml.cs file? Right now, if I put the "controller" functions in the .cshtml.cs file they never get called and the combo remains empty. I assume this is because it's not in a controller.
Any guidance or samples would be great!
Thanks … Ed
public ActionResult Virtualization_Read([DataSourceRequest] DataSourceRequest request)
{
return Json(GetOrders().ToDataSourceResult(request));
}
public ActionResult Orders_ValueMapper(int[] values)
{
var indices = new List<int>();
if (values != null && values.Any())
{
var index = 0;
foreach (var order in GetOrders())
{
if (values.Contains(order.OrderID))
{
indices.Add(index);
}
index += 1;
}
}
return Json(indices);
}
private IEnumerable<OrderViewModel> GetOrders()
{
using (var northwind = GetContext())
{
return northwind.Orders.Select(order => new OrderViewModel
{
ContactName = order.Customer.ContactName,
Freight = order.Freight,
OrderDate = order.OrderDate,
ShippedDate = order.ShippedDate,
OrderID = order.OrderID,
ShipAddress = order.ShipAddress,
ShipCountry = order.ShipCountry,
ShipName = order.ShipName,
ShipCity = order.ShipCity,
EmployeeID = order.EmployeeID,
CustomerID = order.CustomerID
}).ToList();
}
}
}