日期:2014-05-18  浏览次数:20548 次

这两种事件的顺序 同时讨论一下b/s的无状态性
page_load()
{}

button_click()
{}

第一次用到asp.net服务器端控件button的时候,不涉及状态保留的问题,只是一个简单的页面数据采集,存入数据库。当时感觉的真是方便。记得当时asp中好像还得写个收集存储页面, <form   action= "insert.asp "   method=post>   相比之下方便多了。

      可昨天在编一个需要保存一个信息的时候,发现b/s架构的一个比较别扭的地方。
      比如,在winform中,只需要在这个类中增加一个字段,例   public   int   abc;在其他方法中处理即可。并且,button发生click事件时,直接执行button_click()就可以了,一旦修改过字段abc的值,在程序退出前是一直保留的。
      但是在asp.net中,注意到这样是不行的,每次abc都重新初始化为0。
最后,还是在页面设了个label标签,代替abc。
   
      但是,同时发现,page_load()中的代码每次同样要再执行一次。

那么,page_load()与button_click()在click事件发生后的执行顺序是什么呢?
还有这种无状态性,在碰到的时候有没有什么好的架构设计方法能尽可能减少影响,我指的是能尽可能将不需要传值的作为一类对象来编写。

------解决方案--------------------
先load后click
问题应该可以用
if (!Page.IsPostBack)
{}