or
The grid is bound like this:
@(Html.Kendo().Grid(Model).Name("organizationsGrid"))
The action is like this:
var model = new List<OrganizationSummaryModel> {
new OrganizationSummaryModel { Code = "Xyz", Description = "Xyz Organization" },
new OrganizationSummaryModel { Code = "Abc", Description = "Abc Organization" }
};
return View(model);
Throws this exception:
System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) +64
System.Collections.ObjectModel.Collection`1.Insert(Int32 index, T item) +10635094
Kendo.Mvc.UI.Grid`1.WriteHtml(HtmlTextWriter writer) +746
Kendo.Mvc.UI.ViewComponentBase.ToHtmlString() +115
Kendo.Mvc.UI.ViewComponentBuilderBase`2.ToHtmlString() +62
System.Web.HttpUtility.HtmlEncode(Object value) +38
System.Web.WebPages.WebPageBase.Write(Object value) +68
ASP._Page_Views_account_SelectOrganization_cshtml.Execute()
Using:
Visual Studio 2010 with MVC 4 RC.
return element.find(".field-validation-valid[data-valmsg-for='" + fieldName + "'], .field-validation-error[data-valmsg-for='" + fieldName + "']");<br> @(Html.Kendo().Grid(Model) .Name("OrderGrid") .Columns(columns => { columns.Bound(o => o.OrderId).Title("Order Id"); columns.Bound(o => o.Customer.CustomerName).Title("Customer Name"); columns.Bound(o => o.AccountManager).Title("AccountManager"); columns.Command(command => { command.Destroy(); command.Edit(); }); }) .Pageable() .Editable(editable => editable.Mode(GridEditMode.PopUp)) .ToolBar(commands => commands.Create().Text("New Order")) .Filterable() .DataSource(dataSource => dataSource .Ajax() .Model(model => model.Id(o => o.OrderId)) .Events(events => events.Error("error")) .Create(create => create.Action("Orders_Create", "Order")) .Read(read => read.Action("Orders_Read", "Order")) .Update(update => update.Action("Orders_Update", "Order")) .Destroy(destroy => destroy.Action("Orders_Destroy", "Order")) ))public class Order { public int OrderId { get; set; } public int CustomerId { get; set; } public string AccountManager { get; set; } public Customer Customer { get; set; } }public class Customer { public int CustomerId { get; set; } [Required] public string CustomerName { get; set; } [Required] public string Address1 { get; set; } public string Address2 { get; set; } public string Address3 { get; set; } public string City { get; set; } public string County { get; set; } [Required] public string Postcode { get; set; } private ICollection<Order> Orders { get; set; } } public class PropertyUnitModel { public Guid Id { get; set; } public Guid PropertyId { get; set; } public Guid FloorPlanId { get; set; } [Display(Name = "Floor Plan", Description = "Floor Plan", GroupName = "Floor Plan")] public string FloorPlanName { get; set; } public string UnitNumber { get; set; } [Display(Name = "SqFt")] public int SquareFootage { get; set; } public string Notes { get; set; }}@(Html.Kendo().Grid<PropertyUnitModel>() .Name("propertyUnitsGrid") .Columns(columns => { columns.Bound(p => p.UnitNumber).Groupable(false).Width(100); columns.Bound(p => p.SquareFootage).Groupable(false).Width(70); columns.Bound(p => p.Notes).Groupable(false); }) .Sortable() .Pageable(pager => pager.Refresh(true).PreviousNext(false).PageSizes(false).Input(false).Numeric(false)) .DataSource(dataSource => dataSource .Ajax() .Group(groups => groups.Add(p => p.FloorPlanName)) .Model(model => model.Id(p => p.Id)) .Read(read => read.Action("GetAllByProperty", "PropertyUnits", new { PropertyId = Model.Id })) ))
public DataSourceResult Get([DataSourceRequest] DataSourceRequest request) { DataSourceResult dataSourceResult; using (MobookaEntities entities = new MobookaEntities(false)) { IQueryable<Campaign> campaigns = entities.Campaigns.Include("Offer") .Include("Offer.Advertiser") .Include("Offer.Advertiser.Company") .Include("Publisher") .Include("Publisher.Company") .Include("Publisher.Employee") .Include("Publisher.Employee.Profile") .Include("Publisher.Profile") .Include("Status");dataSourceResult = campaigns.ToDataSourceResult(request);}return dataSourceResult; }