永发信息网

控件ViewState 属性的值保存去哪里了

答案:2  悬赏:80  手机版
解决时间 2021-02-02 18:00
控件ViewState 属性的值保存去哪里了
最佳答案
直接操作控件的ViewState属性,通过this.ViewState[key]就可以直接进行读写。
重写控件的LoadViewState和SaveViewState方法。在LoadViewState中系统会将此控件以ViewState保存的信息作为一个object类型参数传入,控件需要自己将信息unboxing出来。在SaveViewState中,控件需要自己将想通过ViewState保存的信息boxing到一个object里面,然后return给系统。
使用Reflector看看Control的LoadViewState与SaveViewState方法你就会发现,其实控件的ViewState属性也就是一个特殊的控件属性,类型为StateBag,由于Control已经为你写好了将StateBag存取到真正的ViewState的方法,所以只要你继承Control控件你就可以放心地把值存到StateBag里面去,而这些值最终会保存到真正的ViewState中。
就这么简单?还差一点,就是StateBag这个字典的每一个项目类型为StateItem,而StateItem有一个IsDirty的属性。只有这个属性为true的StateItem才会被保存到ViewState中。我们在OnInit之后使用this.ViewState[key]读写时该属性都为true,所以StateItem都会被保存。但如果你想要某个StateItem临时不保存到ViewState,那就可以执行this.ViewState.SetItemDirty(key, false)。
全部回答
任务占坑
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
刘老六传奇写没写完
苹果电脑做PPT怎么复制
有博字和慧字的词语
金色印象广告地址在哪,我要去那里办事
广东惠州是个怎样的地方
顺德区致远计算机公司在哪里啊,我有事要去这
数学作文怎么写(字数100字左右
甲数是8,乙数是10,那么乙比甲多几分之几?
我们每个月上27天算全勤,今年2017年的二月份
58一()二|8十|O,73十()二73一()
华美企业管理有限公司在哪里啊,我有事要去这
【乐游原拼音版】古诗乐游原中的乐的正确读音
欣蔓皮肤美容修复工作站地址有知道的么?有点
机动车自选号十选一,十个号码是不是连号的
广州做什么小生意赚钱
推荐资讯
小华美容养生馆地址好找么,我有些事要过去
志强物流地址在什么地方,想过去办事
愚公村我想知道这个在什么地方
鸦儿军的意思是什么啊?知道的请说下!
愁黪的意思是什么啊?知道的请说下!
騃怯的意思是什么啊?知道的请说下!
放下咖啡地址有知道的么?有点事想过去
盘县第四中学地址好找么,我有些事要过去
怎样护手。手会变嫩
纤柔裸妆地址在哪,我要去那里办事
男人离婚后心情不好最快多少时间能走出来有什
湖北放心粮油鄂州市城区百子正街连锁店这个地
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?