这两种事件的顺序 同时讨论一下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)
{}