0

我在 aspx 页面上有一个 AspxGriview,带有id="grdManageFilterRoom". 我通过从数据库中获取一些数据来绑定这个网格。如果变量发生任何变化,Session["grdManageFilterRoom"]它会自动反映在Session["tmpGrdManageFilterRoom"]变量中,我不知道为什么会发生这种情况,我想避免这种行为。任何建议将不胜感激。

   Session["grdManageFilterRoom"] = NameIdPairs<Int32>.GetRooms(companyCode, companyPersonID);          
   grdManageFilterRoom.DataSource = Session["grdManageFilterRoom"];
   Session["tmpGrdManageFilterRoom"] = Session["grdManageFilterRoom"];
4

1 回答 1

0

这:

Session["tmpGrdManageFilterRoom"] = Session["grdManageFilterRoom"];

使两个会话变量都指向同一个对象(我猜该GetRooms方法返回引用类型),基本上无论您使用的是Session["tmpGrdManageFilterRoom"]还是Session["grdManageFilterRoom"](因为它是同一个对象)。

如果想防止这种情况,那么您需要克隆这些对象。

于 2012-08-04T10:19:04.460 回答