类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
public static DataView dv;
这个通常使用来给程序中的datagrid作进一步操作(排序,分页等),及多个dataset共用一个datagrid.
但我们忽略了静态全局变量的特性,就是当多个权限不同的用户一起使用的时候,很有可能前一个用户使用到后面用户的dv,从而超越了权限.因为dv在内存中只有一个,所有用户都可以改变他(还认为全局静态可以为每个用户单独建立实体的朋友请用2台机器自己试试先),这个问题如何解决?请高手指点!
网友回答:
我只是想知道为什么不用session?!
1.
ViewState["dv"]=dv;
2.
Session["dv"]=dv
3
Cache["dv"]=dv
public static DataView dv; ——> private DataView dv;
ViewState["dv"] = dv;
Cache["dv"]=dv这个方法不能用,因为得到的结果和public static DataView dv一样
Cache是针对所有用户的
用Session当然可以了。
楼主第二个问题我有同感,我也考虑过,但到现在没有准确答案。我只能这样想:服务器控件是为了对编码者的动作做出回应,它要通过编码者来改变,为了不产生歧义,它只能有一个意思;至于其他的在做为全局变量时,效果差不多。