This question is locked. New answers and comments are not allowed.
I will try to be as clear as possible.
Problem is i have two models, as:
And then:
So, the Grid i've been using implements as edit mode Batch Editing. Values are displayed just fine. Click on Category column reveals the Category Edit template, implemented as:
Products Grid:
Finally, the controller who does the real job:
Problem is, biding doesn't work automatically as i believe at first. Category property is null after binding mechanism ocurrs.
The example shown at http://demos.telerik.com/aspnet-mvc/grid/editingbatch usesa similar Product model, but this class does not consider any complex property, just primitive types, except for the LastSupply property (a DateTime).
Finally, is this scenario really posible at this moment?:
If YES is the answer, how it must be implemented (in code i mean) binding?
Greetings all.
P.S.: Added captured image displaying the grid just after new values in three DropDownList have been selected: values missing!?
Problem is i have two models, as:
public sealed class ProductModel{ public int IdProduct { get; set; } [UIHint("Category")] public CategoryModel Category { get; set; } public string Code { get; set; } public string Description { get; set; }}And then:
public sealed class CategoryModel{ public int IdCategory { get; set; } public string Code { get; set; } public string Description { get; set; }}So, the Grid i've been using implements as edit mode Batch Editing. Values are displayed just fine. Click on Category column reveals the Category Edit template, implemented as:
@(Html.Telerik().ComboBox() .Name("Category") .DataBinding(binding => binding .Ajax() .Select("Categories", "Home")))Products Grid:
@(Html.Telerik().Grid<ComplexModels.Models.ProductModel>() .Name("Products") .Localizable("es-CL") .DataKeys(keys => { keys.Add(p => p.IdProduct); }) .ToolBar(commands => { commands.SubmitChanges().ButtonType(GridButtonType.BareImage); }) .DataBinding(dataBinding => dataBinding.Ajax() .Select("_Retrieve", "Home") .Update("_Update", "Home") ) .Columns(columns => { columns.Bound(p => p.IdProduct).Title("#").Width(40).ReadOnly(true); columns.Bound(p => p.Category).ClientTemplate("<#= Category.Code #>").Width(100); columns.Bound(p => p.Code).Width(100); columns.Bound(p => p.Description); columns.Command(commands => commands.Delete().ButtonType(GridButtonType.BareImage)).Width(50); }) .ClientEvents(events => events.OnDataBinding("Products_onDataBinding").OnError("Products_onError")) .Editable(editing => editing.Mode(GridEditMode.InCell)) .Pageable() .Sortable())Finally, the controller who does the real job:
[HttpPost][GridAction]public ActionResult _Update([Bind(Prefix = "updated")]List<ProductModel> updatedProducts){ if (updatedProducts != null) { foreach (var product in updatedProducts) { var target = DataGateway.Products().Where(p => p.IdProduct == product.IdProduct).FirstOrDefault(); if (target != null) { DataGateway.Update(product); } } } return View(new GridModel(DataGateway.Products()));}Problem is, biding doesn't work automatically as i believe at first. Category property is null after binding mechanism ocurrs.
The example shown at http://demos.telerik.com/aspnet-mvc/grid/editingbatch usesa similar Product model, but this class does not consider any complex property, just primitive types, except for the LastSupply property (a DateTime).
Finally, is this scenario really posible at this moment?:
- Using complex nested models (at any level)
- Using Batch Editing Mode
If YES is the answer, how it must be implemented (in code i mean) binding?
Greetings all.
P.S.: Added captured image displaying the grid just after new values in three DropDownList have been selected: values missing!?