为啥点击一个最简单的服务器端按钮控件也会刷新网页

为啥点击一个最简单的服务器端按钮控件也会刷新网页,第1张

仅仅在网页上添加了一个按钮,且没有添加任何Click处理代码<asp:Button ID="Submit" runat="server" Text="Submit"/>打开网页后点击该按钮,页面就会闪一下,应该是刷新了而我在Page_Load方法里面已经设置了if(!IsPostBack)------解决方案--------------------------------------------------------if(!IsPostBack) 不是说不刷新页面,他只是在判断是否是回发。服务器控件有一个属性叫aotopostback------解决方案--------------------------------------------------------探讨if(!IsPostBack) 不是说不刷新页面,他只是在判断是否是回发。服务器控件有一个属性叫aotopostback如果你的 html和js比较扎实的话。 你点开源文件看看,也许会懂很多------解决方案--------------------------------------------------------这就是webform的基本特点------解决方案--------------------------------------------------------服务器控件都这样啊不行就用JS+HTML实现,ajax界面无刷新咯------解决方案--------------------------------------------------------原理问题!------解决方案--------------------------------------------------------是服务器端按钮都会回发。只有HTML按钮才不会!!!

C#里面的按钮是服务器控制,每次点击时都会向服务器发送一个请求,每次请求都会刷新页面。如果你想做到不刷新整个页面有两种方法:一是,不使用服务器控件,用<input type="button">代替;二是,用Ajax来实现局部刷新。如果你的按钮不需要进行后台 *** 作就用第一种方法,如果你想点击按钮时,在后台进行业务 *** 作,那么就用ajax。网上有很多关于Ajax的材料,你找找吧

aspnet webform保持状态是通过 ViewState实现的,其实就是 在页面 中有个 id=“__ViewState"的Hidden, 在页面回传到服务器后,通过存在viewstate中数据可以还原控件的数据。
但是对于动态创建的 控件,这个viewstate没法存所以无法还原,
微软官方的方法是,在 Page_Init方法中,重新创建控件,只要Id和之前的一样的话在Page_Load的时候,控件的值就能还原回来。
如果要深入了解的话,需要弄懂webform页面生存周期内各个事件执行顺序,
不过我觉得webform的服务器控件有时候很麻烦,而且很容易误导人,建议少用,直接写原生的html吧,或者学习MVC框架。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10625437.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存