会话变量未正确处理

时间:2012-08-04 10:14:46

标签: c# asp.net

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

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

1 个答案:

答案 0 :(得分:0)

此:

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

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

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