注文と注文の詳細があるとしましょう。
ビューには注文フィールドが含まれ、詳細についてはTelerikグリッド
がセッションで注文の参照を常に維持します。
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;
}
ただし、シリアル番号の列を非表示にしたいのですが、非表示にすると、詳細に表示されなくなります。