代码改变世界

asp.net 应用开发(表单+列表)遇到的问题及总结

2012-06-26 14:18  秋日愚夫  阅读(611)  评论(9编辑  收藏  举报

 
这两天一直在做这个很经典的,一个表单加一个显示结果列表的页面。
 
难点在于,在提交查询或打开导航链接时,获取上一次查询保存的当前的页码及查询条件。
 
第一天解决思路,用的是Static变量保存当前页码及查询条件,查询则是用的HTML表单获取数据,导航用的是超链接加传动作名称。
Static变量是类的属性,供所有对象实例共享的。也就是说,如果有两个客户以上用户同时登录,就会有两个以上实例共享此变量。误操作的概率是很大的。果断放弃改用Cookies
我感觉,Static更适合用于判断诸如当前在线用户数,单点登录之类的应用。
 
第一天下午,用了cookies保存查询条件及页码,其余的与第一版一样。
半天时间改为Cookies版,但同事说Cookies变量过期时间可能跟客户端设置有关,为了避免可能的BUG,果断再换。。。
 
第二天,采用ViewState加链接按钮控件,表单也是用的控件。
虽然半不喜欢ViewState在页面上的一大串字符,但其能很好的解决我在页面回发传值取值的需求。果断用,并且将导航链接及提交表单换成控件。这样ViewState就可以在页面生存周期内处理回发需求。
ViewState应该注意,他只能接收IsPostBack为True的时候ViewState所传递变量值。因为ViewState本质上是隐藏类型的INPUT,所以只有在表单进行提交后,才能获取其值。
 
感触:
控件触发过程:Page_Load--->Butten_Click() 与winform直接进行Butten_Click()有区别。
 
本项目数据访问层就是用自己的ORM及代码生成器,所以难点就集中在了页面交互。笔者多从事Winform,WinCE开发,ASP.NET刚刚操刀两三日,经验尚浅。。写作目的仅仅是为了记录一个ASP.NET菜鸟的学习过程。。如有不当,还望见谅。。。