This question is locked. New answers and comments are not allowed.
When I Update a row in the grid I get 2 parameters to the Update Function.
When I Delete a row, the 2nd parameter is NULL (although exists in the grid0
I have 2 questions:
a. why doesn't delete get both key parameters (OrderID, ItemID), and how can I make sure it gets it.
b. In Update function I Get the new values, how can I access the old values before update (in order to find the old item in the DB ?)
Thanks
Dani.
Grid Definition:
<%= Html.Telerik().Grid<ItemsInOrderPOCO>() .Name("ItemsInOrderGrid") .DataKeys(dataKeys => { dataKeys.Add(e => e.OrderID); dataKeys.Add(e => e.ItemID); }) .ToolBar(commands => commands.Insert()) .DataBinding(dataBinding => { dataBinding.Ajax() //Ajax binding .Select("SelectItemGridAjax", "Orders", new { OrderID = Model.myOrder.OrderID }) .Insert("InsertItemGridAjax", "Orders", new { OrderID = Model.myOrder.OrderID }) .Update("UpdateItemGridAjax", "Orders") .Delete("DeleteItemGridAjax", "Orders"); }) .Columns(c => { c.Bound(o => o.ItemID); c.Bound(o => o.OrderID).Column.Visible = false; c.Bound(o => o.ItemDescription); c.Bound(o => o.NumOfItems); c.Bound(o => o.CostOfItem); c.Bound(o => o.TotalCost); c.Bound(o => o.SupplyDate); c.Command(commands => { commands.Edit(); commands.Delete(); }).Width(180).Title("?????"); })Controller Functions:
[AcceptVerbs(HttpVerbs.Post)] [GridAction] public ActionResult UpdateItemGridAjax(int OrderID, string ItemID) { ItemsInOrder item = ordersRepository.FindItemByID(OrderID, ItemID); if (item != null) { ItemsInOrderPOCO itemPOCO = new ItemsInOrderPOCO(item); if (TryUpdateModel(itemPOCO)) { ordersRepository.UpdateItem(ItemsInOrderPOCO.ItemConvert2EF(itemPOCO, item)); } } List<ItemsInOrder> iList = ordersRepository.GetOrderItemsTK(OrderID).ToList(); return View(new GridModel(ItemsInOrderPOCO.ListConvert(iList))); } [AcceptVerbs(HttpVerbs.Post)] [GridAction] public ActionResult DeleteItemGridAjax(int OrderID, string ItemID) { ItemsInOrder item = ordersRepository.FindItemByID(OrderID, ItemID); if (item != null) { ordersRepository.DeleteItem(item); } List<ItemsInOrder> iList = ordersRepository.GetOrderItemsTK(OrderID).ToList(); return View(new GridModel(ItemsInOrderPOCO.ListConvert(iList))); }