日期:2014-05-17  浏览次数:20601 次

asp.net 局部刷新
有一个浏览的功能
浏览下面是一个图片保存功能,当点保存按钮的时候
上面的浏览内容都被清空了
这是什么原因
是刷新的原因吗
求解!!!!!!
asp.net 图片

------解决方案--------------------
当点保存按钮的时候执行了什么操作?

------解决方案--------------------
是上传控件里的值清空了吗?最好能把保存按钮里的代码贴出来!
------解决方案--------------------
你可以看看asp.net服务器控件,如果你在人家正规的asp.net页面上放一个Button,双击它产生服务器端事件处理,然后开始测试!这样在运行时,页面就会回发,这时候你就会看到关键的区别了:

人家asp.net服务器控件不会丢失状态,不管是GridView已经绑定了的数据(甚至正在运行在半截过程的Edit操作界面视图),还是修改各种Theme或者颜色等等其它属性,都不会丢失状态。

再看某些asp.net程序猿写的代码,特别是一些自称“会用jQuery”的程序猿写的,你会看到状态都丢失了,或者乱掉了。

当然你可以简单地说“这是回发造成的”。但是这时原因吗?真实的原因是其实比较复杂,关键是那样的asp.net的程序员没有接受过培训,或者所接受的培训是比较坑爹的,连我上面说到的这个简单的“button回发测试”都经受不起。

我知道如今合格的asp.net程序员非常稀少,这是因为许多公司的“项目经理”也是这个水平的asp.net程序猿,因此必然千方百计对上面隐瞒这个事实。

如果你还想真的学习asp.net的交互程序设计知识,不管入门书有多烂,你也是想真正了解自己对asp.net了解有多少,那么请用我上面这个“button回发测试”作为你学习的第一把尺度,遇到经不起这个测试的教科书、博客文章,你可以打上一个“大叉叉”。

最后,推荐刚入门的asp.net程序员把Scott Mitchell的那个asp.net2.0编程系列文章全都做一遍。这个文章很老,作者当时甚至还不知道asp.net ajax为何物,内容是比较老旧的。但是学习这个,对于半专业的asp.net程序员是很好的,因为现在的垃圾入门书太多了。

而专业的asp.net程序员至少需要从学习asp.net控件开发入手,不能仅仅会拖拉别人的控件,应该会开发控件然后发布给别人。
------解决方案--------------------

页面刷新内容没了,重新绑定一下浏览内容
贴代码出来看看
------解决方案--------------------
由于现在不太懂asp.net控件使用编程的asp.net占到了85%以上,无奈,我只能说“大家都去用jQuery EasyUI等等框架吧,千万不要回发!”。

如果你确实完全抛掉asp.net,顶多仅仅用ashx来给Ajax调用返回json数据而已,如果你是这样的开发模式(你的asp.net程序绝不针对UI进行编程),那么我认为还是可以的。

你仍然能够用“富javascript客户端程序”来完成完整的交互界面程序开发,而不会产生这种“点击下面的按妞,上面的内容被清空了”的现象。因此我认为如果不去比较所做出来的应用程序的界面是否丰富的话,自称“从不使用asp.net的前端程序员”要比asp.net程序员更好。
------解决方案--------------------
“重新绑定”我且不说其页面刷新效率会慢多少倍,也不说这个逻辑上有多么大的错误,单就一个基本的程序设计常见场景而言,例如我们页面一个区域是5、6个条件选择UI(有下拉列表、有文本框、有级联动态列表和复选框等等),然后编辑好查询条件,我们点“查询”按妞。结果这个操作,会让辛苦选择的查询条件UI里边的内容都乱了,这是一个专业的开发人员做的程序吗?这个时候去绑定什么东西呢?这个时候谈不上绑定,就是基本的编程逻辑出的问题,你选择了根本不会在ViewState中记忆自身状态的那些编程方式,你不会选择正确的编程语句。
------解决方案--------------------
引用:
你可以看看asp.net服务器控件,如果你在人家正规的asp.net页面上放一个Button,双击它产生服务器端事件处理,然后开始测试!这样在运行时,页面就会回发,这时候你就会看到关键的区别了:

人家asp.net服务器控件不会丢失状态,不管是GridView已经绑定了的数据(甚至正在运行在半截过程的Edit操作界面视图),还是修改各种Theme或者颜色等等其它属性,都不会丢失状态。

再看某些asp.net程序猿写的代码,特别是一些自称“会用jQuery”的程序猿写的,你会看到状态都丢失了,或者乱掉了。

当然你可以简单地说“这是回发造成的”。但是这时原因吗?真实的原因是其实比较复杂,关键是那样的asp.net的程序员没有接受过培训,或者所接受的培训是比较坑爹的,连我上面说到的这个简单的“button回发测试”都经受不起。

我知道如今合格的asp.net程序员非常稀少,这是因为许多公司的“项目经理”也是这个水平的asp.net程序猿,因此必然千方百计对上面隐瞒这个事实。

如果你还想真的学习asp.net的交互程序设计知识,不管入门书有多烂,你也是想真正了解自己对asp.net了解有多少,那么请用我上面这个“button回发测试”作为你学习的第一把尺度,遇到经不起这个测试的教科书、博客文章,你可以打上一个“大叉叉”。

最后,推荐刚入门的asp.net程序员把Scott Mitchell的那个asp.net2.0编程系列文章全都做一遍。这个文章很老,作者当时甚至还不知道asp.net ajax为何物,内容是比较老旧的。但是学习这个,对于半专业的asp.net程序员是很好的,因为现在的垃圾入门书太多了。

而专业的asp.net程序员至少需要从学习asp.net控件开发入手,不能仅仅会拖拉别人的控件,应该会开发控件然后发布给别人。


这位解释得很清楚的了,是回发的原因。在page_load里面加上if(!ispostback)应该就没问题的了,另外也可以使用ajax解决
------解决方案--------------------
引用:
加了,现在只有fileupload这个控件会被清空

fileupload的确会清空,他不保留viewstate。
------解决方案--------------------
无图无真相。。。。。。。。。。。。。
-----