我现在在做一个管理员的页面,要求提供多管理员登录,数据加锁功能,但是现在遇到一些问题:
    如果当前有一个管理员正对某一数据进行修改,那个其它管理员再要修改这个数据的时候就会被提示已有人在修改,无法上锁。
    我是这样实现的,我的数据在网页中是在Gridview中显示的,当某一行被选中修改时,我就把这行数据的ID号放入Application中。比如:如果一个管理员要修改某一行时,如果这一行数据的ID号已经在Application中话,则他不能修改,否则可以修改,并将这行数据的ID号放入Application中;下面如果这个管理员选择修改其它数据,那个当前数据的ID号就要从Application中删除。现在出现了三个问题:
    1.如果已经上锁的管理员这时候直接关闭浏览器,这时候无法得到任何信息,那么这个管理员锁定的数据ID也无法得到,就无法从Application中删除;
    2.如果没有选择Gridview中其它数据,而是直接点页面上其它链接,这样一来也就没有Gridview_RowChanged事件发生,那么我如何将在Application中将被上锁的数据行的ID号删除;请哪位大侠有方法解决,在下感激不尽!!!

解决方案 »

  1.   

    大概明白 LZ 的意思,仅提供一点个人想法,仅供参考:既然ID号放入Application中,那么 Session 一定可用,当保存 ID 时一同保存 SessionID 到 Application 中,这样定期遍历所有 ID 对应的 SessionID 是否存在,若不存在(window.close)则删除该ID。至于页面跳转时,思路同理,不过应该在转入页清除那个特定的 Session,或者在基页中处理亦可。