updatepanel 里放datalist Event触发后postback,Page_load被执行?小弟百思不得其解?
我在updatepanel里面放了一个datalist,在datalist触发LinkButton_Command,预期是局部刷新updatepanel里面的内容,
但实际却引发了page_load事件,为什么updatepanel里面的事件会导致postback呢?小弟百思不得其解。。。希望高手能够为我解惑。。感激不尽
[解决办法]
任何回发都会触发器page_load,asp.net每一次处理客户端请求都是重建一个Page实例,只不过asp.net会自动重新装载ViewState、post数据,并且触发器相应的事件,这样看起来好像是桌面本地程序一样。但是其实每一次操作都是在新的Page实例上执行的,这时asp.net页面生命周期,每一次回发都要引发page_load事件。
UpdatePanel是相当“重量级”的,它其实就是asp.net页面回发。看上去是“无刷新”的,但是服务器端要经历整个页面重建过程。如果你想使用轻量级的Ajax方法,那么应该使用asp.net ajax中调用asmx的方法,而不是UpdatePanel。不过这需要真正去从javascript角度重新学习UI编程知识,这顶多需要asp.net处理数据上传下载(只需要ashx基本功能),而不需要asp.net的交互界面开发知识。