假设我有一个订单和订单详情。
该视图将包含订单字段和 Telerik Grid 的详细信息,
我始终在会话中维护订单的参考。
Session["Order"] = order;
当用户向网格添加订单详细信息时,我将其保存在订单参考中。
public ActionResult Grid_AddDetail(OrderDetail orderDetail) {
(Session["order"] as Order).Details.Add(orderDetail);
}
问题是当我需要更新行时,如何确定订单详细信息中的哪些详细信息已更新?
public ActionResult Grid_UpdateDetail(OrderDetail orderDetail) {
///how will i compare the element in the details, with the orderDetail?
(Session["order"] as Order).Details.IndexOf(orderDetail) = orderDetail;
}
该问题可以通过添加序列号列来解决,并将传入的详细信息与我参考中存在的进行比较,方法是覆盖 Equal:
public overrid Equal(object obj){
return (obj as OrderDetail).Serial == this.Serial;
}
但我希望序列号列不可见,但如果我这样做,它将不会显示在传入的详细信息中。