如何批量更新Kendo网格模型

时间:2015-08-18 16:28:54

标签: javascript kendo-grid kendo-datasource

我一直在努力将模型从视图传递到剑道网格中的控制器一段时间。我设法将物品送到我的Jsonresult,但所有的价值都是' 0' 0或null。

这是我的代码,任何帮助都将不胜感激。

控制器:

for line in a.split("\n"):
          ...

查看:

public JsonResult ProductsUpdateTicket([DataSourceRequest]DataSourceRequest request, List<TicketProducts> model, int? prodid)
        {
            var entities = new List<TicketProducts>();
            if (model != null && ModelState.IsValid)
            {
                using (var db = new CimDataContext())
                {
                    foreach (var prod in model)
                    {
                    var totalPrice = prod.Quantity * prod.UnitPrice;
                    var entity = new TicketProducts
                    {
                        ID = prod.ID,
                        Quantity = prod.Quantity,
                        TicketNumber = prod.TicketNumber,
                        UnitPrice = prod.UnitPrice,
                        TotalPrice = totalPrice,
                        Description = prod.Description,
                        ProductID = prod.ProductID
                    };
                    entities.Add(entity);
                    db.TicketProducts.Attach(entity);
                    db.Entry(entity).State = System.Data.EntityState.Modified;
                    }
                    db.SaveChanges();
                }
            }
            return Json(new[] { entities }.ToDataSourceResult(request, ModelState));
        }

1 个答案:

答案 0 :(得分:0)

问题是options.models。它只是你的模型而且本身没有数据。

你可以这样做:

   parameterMap: function (options, operation) {
                        if (operation !== "read" && options.models) {
                            return { model: function() {
                              var grid = $("#grid3").data("kendoGrid");
                              var row = $(grid._editContainer).closest("tr");
                              var rowIdx = $("tr", grid.tbody).index(row);
                             var data = { 
                                          ID : grid._data[rowIdx].ID ,
                                          Quantity :   grid._data[rowIdx].Quantity,
                                          TicketNumber : grid._data[rowIdx].TicketNumber 
                                          UnitPrice  :  grid._data[rowIdx].UnitPrice
                                          TotalPrice :  grid._data[rowIdx].TotalPrice
                                          Description :  grid._data[rowIdx].Description
                                          ProductID :  grid._data[rowIdx].ProductID

                                     };
                             return data;
                             }};
                        }
                        if (operation == "read") {
                            return { ticketid: iidee };
                        }
                    }

希望这有效,如果你有问题要知道。