新足迹

 找回密码
 注册

精华好帖回顾

· 路考实录(侥幸过关) (2005-1-8) meljohn · 我总结的小儿增强体质方法(随便聊聊) (2012-8-7) 海边小妹
· 凝凝回归!田园脆鸡堡——从面包开始DIY的简单松软汉堡包(儿童节的前奏) (2011-5-31) feicunzic · 我在南澳洲打LABOUR工的日子 (2007-9-25) iceeyes2000
Advertisement
Advertisement
查看: 1827|回复: 24

ASP.NET save and load viewstate data [复制链接]

发表于 2011-7-25 12:12 |显示全部楼层
此文章由 hornsay 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hornsay 所有!转贴必须注明作者、出处和本声明,并保持内容完整
有没有已经做好的function 来save and load web controls data into viewstate, 还是要自己写?

我感觉MS应该有提供现成的function?
Advertisement
Advertisement

发表于 2011-7-25 13:24 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
不是很明白你的具体需求,
看起来你已经有方案了,只是不知道怎么实现,
我个人认为, viewstate 是垃圾,能不用就不要用。

发表于 2011-7-25 13:52 |显示全部楼层
此文章由 hornsay 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hornsay 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2011-7-25 12:24 发表
不是很明白你的具体需求,
看起来你已经有方案了,只是不知道怎么实现,
我个人认为, viewstate 是垃圾,能不用就不要用。

新手,只能从捡垃圾开始。

我的意思是,假如我有10多个controls,包括dropdownlist, 所有的control values 包括dropdownlist items你只要call saveviewstate, 那些value应该自动的被save了,否则需要写那些code 去loop every control and save it. 同样在叫loadviewstate时,这些stored information又从新被assign to controls.

撇开用viewstate好不好,我觉得这是一个很common的practice,否则我觉得developer not productive.
持不同股见者...

发表于 2011-7-25 15:03 |显示全部楼层
此文章由 huazhb 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 huazhb 所有!转贴必须注明作者、出处和本声明,并保持内容完整
如果是.net 自带的Control, 那ViewState都是自动保存和恢复的, 如果你自己写的Control, 那就要自己保存和恢复ViewState的value了

评分

参与人数 1积分 +3 收起 理由
hornsay + 3 感谢分享

查看全部评分

2010年度奖章获得者

发表于 2011-7-25 15:16 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
有点像在抽水马桶里拉的屎,装到痰盂里。

评分

参与人数 2积分 +6 收起 理由
kanjunhai + 3 你太有才了
hornsay + 3 偶对你的景仰如滔滔江水

查看全部评分

发表于 2011-7-25 18:10 |显示全部楼层
此文章由 hornsay 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hornsay 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2011-7-25 14:16 发表
有点像在抽水马桶里拉的屎,装到痰盂里。

Have you touched it before?
持不同股见者...
Advertisement
Advertisement

发表于 2011-7-25 22:12 |显示全部楼层
此文章由 hornsay 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hornsay 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2011-7-25 14:16 发表
有点像在抽水马桶里拉的屎,装到痰盂里。


Seriously.

我现在才接触web from control, 不是很清楚是用stateview, or controlview or cookie or session 来储存, 麻烦大老虎来指导一下。。
持不同股见者...

发表于 2011-7-25 22:15 |显示全部楼层
此文章由 hornsay 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hornsay 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 huazhb 于 2011-7-25 14:03 发表
如果是.net 自带的Control, 那ViewState都是自动保存和恢复的, 如果你自己写的Control, 那就要自己保存和恢复ViewState的value了


我不是很清楚你说的自动保存和恢复。。

假如是用viewstate["textbox1"] = textbox1.text; 来保存,用textbox1.text=viewstate["textbox1"];恢复,我觉得不是很elegant.
持不同股见者...

发表于 2011-7-25 22:24 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
难道你没做些" hellow world" 么?
他的意思是你直接用text1.text就可以了,viewstate是背后的东西你不用管的,除非你真要做点特别的事情。

发表于 2011-7-25 23:05 |显示全部楼层
此文章由 hornsay 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hornsay 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2011-7-25 21:24 发表
难道你没做些" hellow world" 么?
他的意思是你直接用text1.text就可以了,viewstate是背后的东西你不用管的,除非你真要做点特别的事情。


不瞒你说,真的还没有做过。

现在是边做边学。3张page, 第一张 search options, 有很多controls, 第二张,list of records, 第三张,detail of one record, 然后在第三张里 click button open new window at other web site. 问题是如果不open new window, 点击back button, 第一张的search option 还在,但只要new window open了,第一张的所有control的数据都没有了。
持不同股见者...

发表于 2011-7-28 18:31 |显示全部楼层
此文章由 hornsay 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hornsay 所有!转贴必须注明作者、出处和本声明,并保持内容完整
没有找到好得solution.

界面上有textbox 和dropdownbox, 本来就有个object介于WebForm和DB, 加一些功能进去,然后store这个object 在session里, 这样所有的textbox value, dropdownbox value 和dropdownbox items都可以restore。

不知道是不是好的方法,至少现在是working, 只能这么做了,以后再review。
持不同股见者...
Advertisement
Advertisement

发表于 2011-8-11 13:07 |显示全部楼层
此文章由 hornsay 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hornsay 所有!转贴必须注明作者、出处和本声明,并保持内容完整
题目可能要改一下。

今天从新学习了一下, ViewState只能用于同一张page 的post back时save, 而不能用于page之间的save, 而我正是要的是page之间的control info save. 所以只能用cookie或session.

这是我今天学习的体会,不对请各位大师指正。
持不同股见者...

发表于 2011-8-11 14:59 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 hornsay 于 2011-8-11 12:07 发表
题目可能要改一下。

今天从新学习了一下, ViewState只能用于同一张page 的post back时save, 而不能用于page之间的save, 而我正是要的是page之间的control info save. 所以只能用cookie或session.

这是我今天学习的体会,不对请各位大师指正。


correct,也可以用querystring.

评分

参与人数 1积分 +3 收起 理由
hornsay + 3 感谢分享

查看全部评分

发表于 2011-8-11 15:07 |显示全部楼层
此文章由 pengruijun 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 pengruijun 所有!转贴必须注明作者、出处和本声明,并保持内容完整
还有cache

发表于 2011-8-11 15:15 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 pengruijun 于 2011-8-11 14:07 发表
还有cache


cache一般不认为可靠,只能当作提高性能的手段,如果他无效,也不应该影响正常逻辑。

发表于 2011-8-11 15:40 |显示全部楼层
此文章由 pengruijun 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 pengruijun 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 乱码 于 2011-8-11 14:15 发表


cache一般不认为可靠,只能当作提高性能的手段,如果他无效,也不应该影响正常逻辑。

提到可靠,session cookie 也都不可靠。
web 开发本来就应该避免page 之间传送数据
Advertisement
Advertisement

发表于 2011-8-11 16:49 |显示全部楼层
此文章由 o2h2o 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 o2h2o 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 pengruijun 于 2011-8-11 14:40 发表

提到可靠,session cookie 也都不可靠。
web 开发本来就应该避免page 之间传送数据

乱码兄说的 很对
cache 不是这样用的
提升性能 判断 是否命中 不命中去fetch 之类的
用cache 来取跨页面的 东西很有可靠问题
头像被屏蔽

禁止发言

发表于 2011-8-11 16:57 |显示全部楼层
此文章由 linkspeed 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 linkspeed 所有!转贴必须注明作者、出处和本声明,并保持内容完整
不是cache,是session,而且是db or state server的。
session会慢。

如果是web farm,每台web server的cache是独立的。
头像被屏蔽

禁止发言

发表于 2011-8-11 16:57 |显示全部楼层
此文章由 linkspeed 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 linkspeed 所有!转贴必须注明作者、出处和本声明,并保持内容完整
如果要绝对可靠,只有自己把数据写到数据库,然后再读出来。

发表于 2011-8-11 20:55 |显示全部楼层
此文章由 hornsay 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hornsay 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 乱码 于 2011-8-11 13:59 发表


correct,也可以用querystring.


还不知道有querystring, 回头再学一下。
持不同股见者...

发表于 2011-8-11 21:38 |显示全部楼层
此文章由 pengruijun 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 pengruijun 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这里是比较常用的几种, transfer data between page 的方法
http://msdn.microsoft.com/en-us/library/6c3yckfw.aspx
Advertisement
Advertisement

发表于 2011-8-12 23:20 |显示全部楼层

回复 pengruijun 21# 帖子

此文章由 hornsay 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hornsay 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我现在做的不是要pass data between page, 这个问题已经解决了。现在的问题是如何保存前面一张page的controls value, text box 也好,dropdown list 也好。当从第二张page回到第一张时,第一张里的contorl value all gone.

我现在是用session来保存第一张的controls value.
持不同股见者...

发表于 2011-8-12 23:26 |显示全部楼层
此文章由 混不到坑的萝卜 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 混不到坑的萝卜 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你为啥要在两张page之间跳来跳去?把这两张合并成一张就好了。

问一下,你是不是以前是写asp的?

发表于 2011-8-12 23:33 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 混不到坑的萝卜 于 2011-8-12 22:26 发表
你为啥要在两张page之间跳来跳去?把这两张合并成一张就好了。

问一下,你是不是以前是写asp的?


你怎么看出来的,看签名我猜原来是脑科专家。

我觉得他的意思是按back button回去的

评分

参与人数 1积分 +3 收起 理由
hornsay + 3 还是乱码懂我。。

查看全部评分

发表于 2011-8-15 15:11 |显示全部楼层
此文章由 hornsay 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hornsay 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 混不到坑的萝卜 于 2011-8-12 22:26 发表
你为啥要在两张page之间跳来跳去?把这两张合并成一张就好了。

问一下,你是不是以前是写asp的?


写了10多年的Delphi code, 开始学C#不久.

我现在是在similate我们desktop的界面, 两张合并或单独,还不是很清楚他们之间的优缺点。 反正刚开始,每一个功能都要去学,我想等学会了,以后就可以用一种比较好的方法来做。
持不同股见者...

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部