I get the following error when trying to bind datatable to Telerik Kendo grid:
The index was out of range. Must be non-negative and smaller than the size of the collection.
I followed the draft Telerik example project, but in my code it seems to fail in the Read function of the DataSource:
.Read (read => read.Action ("Read", "Events"))
I have an ActionResult Read () currently returning null, simply because I would like to see if it can even jump to this function. In addition, I went through and the returned datatable returns the correct column and column names.
Any help is appreciated.
Events.cshtml
@model System.Data.DataTable @{ ViewBag.Title = "Events"; Layout = "~/Views/_mainLayout.cshtml"; } <p>Events</p> @(Html.Kendo().Grid(Model) .Name("GridStatic") .Columns(columns => { columns.Bound("ID"); columns.Bound("EntryType"); columns.Bound("EventDate"); columns.Bound("EventData"); columns.Bound("Source"); }) .Pageable() .Sortable() .Scrollable() .Filterable() .DataSource(dataSource => dataSource .Ajax() .Model(model => { model.Field("ID", typeof(int)); model.Field("EntryType", typeof(DateTime)); model.Field("EventDate", typeof(string)); model.Field("EventData", typeof(string)); model.Field("Source", typeof(string)); }) .Read(read => read.Action("Read", "Events")) ) )
EventsController.cs
public class EventsController : Controller {
UPDATE ::
Here is a stack trace, I'm not sure if this will help.
[ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index]
System.ThrowHelper.ThrowArgumentOutOfRangeException () +72
System.Collections.ObjectModel.Collection`1.set_Item (Int32 index, T value) +10451574
System.Web.Mvc.ControllerContext.get_RequestContext () +25
Kendo.Mvc.UI.NavigatableExtensions.GenerateUrl (INavigatable navigatable, ViewContext viewContext, IUrlGenerator urlGenerator) +52
Kendo.Mvc.UI.Fluent.CrudOperationBuilder.SetUrl () +81
Kendo.Mvc.UI.Fluent.CrudOperationBuilder.Action (String actionName, String controllerName, Object routeValues) +66
Kendo.Mvc.UI.Fluent.CrudOperationBuilder.Action (String actionName, String controllerName) +47
ASP._Page_Views_Events_Events_cshtml.b__3 (CrudOperationBuilder read) in c: \ Users \ wsharp \ Documents \ Visual Studio 2010 \ Projects \ Inviso \ Inviso \ Views \ Events \ Events.cshtml: 40
Kendo.Mvc.UI.Fluent.AjaxDataSourceBuilderBase`2.Read (Action`1 configurator) +131
ASP._Page_Views_Events_Events_cshtml.b__2 (DataSourceBuilder`1 dataSource) in c: \ Users \ wsharp \ Documents \ Visual Studio 2010 \ Projects \ Inviso \ Inviso \ Views \ Events \ Events.cshtml: 30
Kendo.Mvc.UI.Fluent.GridBuilder`1.DataSource (Action`1 configurator) +212
ASP._Page_Views_Events_Events_cshtml.Execute () in c: \ Users \ wsharp \ Documents \ Visual Studio 2010 \ Projects \ Inviso \ Inviso \ Views \ Events \ Events.cshtml: 16
System.Web.WebPages.WebPageBase.ExecutePageHierarchy () +197
System.Web.Mvc.WebViewPage.ExecutePageHierarchy () +97
System.Web.WebPages.WebPageBase.ExecutePageHierarchy (WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +76
System.Web.Mvc.RazorView.RenderView (ViewContext viewContext, TextWriter writer, Object instance) +260
System.Web.Mvc.BuildManagerCompiledView.Render (ViewContext viewContext, TextWriter writer) +115
System.Web.Mvc.ViewResultBase.ExecuteResult (ControllerContext context) +295
System.Web.Mvc.ControllerActionInvoker.InvokeActionResult (ControllerContext controllerContext, ActionResult actionResult) +13
System.Web.Mvc.c__DisplayClass1a.b__17 () +23
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter (IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +242
System.Web.Mvc.c__DisplayClass1c.b__19 () +21
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters (ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +177
System.Web.Mvc.Async.c__DisplayClass2a.b__20 () +89
System.Web.Mvc.Async.c__DisplayClass25.b__22 (IAsyncResult asyncResult) +102
System.Web.Mvc.Async.WrappedAsyncResult`1.End () +57
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction (IAsyncResult asyncResult) +43
System.Web.Mvc.c__DisplayClass1d.b__18 (IAsyncResult asyncResult) +14
System.Web.Mvc.Async.c__DisplayClass4.b__3 (IAsyncResult ar) +23
System.Web.Mvc.Async.WrappedAsyncResult`1.End () +62
System.Web.Mvc.Controller.EndExecuteCore (IAsyncResult asyncResult) +57
System.Web.Mvc.Async.c__DisplayClass4.b__3 (IAsyncResult ar) +23
System.Web.Mvc.Async.WrappedAsyncResult`1.End () +62
System.Web.Mvc.Controller.EndExecute (IAsyncResult asyncResult) +47
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute (IAsyncResult asyncResult) +10
System.Web.Mvc.c__DisplayClass8.b__3 (IAsyncResult asyncResult) +25
System.Web.Mvc.Async.c__DisplayClass4.b__3 (IAsyncResult ar) +23
System.Web.Mvc.Async.WrappedAsyncResult`1.End () +62
System.Web.Mvc.MvcHandler.EndProcessRequest (IAsyncResult asyncResult) +47
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest (IAsyncResult result) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +9629296
System.Web.HttpApplication.ExecuteStep (IExecutionStep step, Boolean & completedSynchronously) +155