全面分析PostBack之Client Script
-Written by 浪子@cnblogs.com (2006.08.14)
问题描述:
问题分析:
PostBack有2种方式
1、 通过__doPostBack(eventTarget, eventArgument),例如LinkButton;
2、 通过form的submit方式,例如采用UseSubmitBehavior的Button
对于button,可能会有三种绘制方式:
1、 button的UseSubmitBehavior为true,并且没有触发验证事件;
采用form的submit方式,不需要描绘script
2、 button的UserSubmitBehavior为false,并且没有触发验证事件;
采用__doPostBack函数
3、 button有触发验证事件:
采用WebForm_DoPostBackWithOptions(options)函数
问题解决:
我需要的是采集PostBack的Client Script,所以只需要获取__doPostBack或者WebForm_DoPostBackWithOptions(options)函数,以便传给KMessageBox进行事件挂载。
按上面的分析我们已经知道什么情况下使用__doPostBack,什么情况下使用WebForm_DoPostBackWithOptions(options)。
分析一下Reflector出来的Button源码:
有了这段代码,我们就可以很清晰的得到服务端如何决定采取什么方式来绘制客户端的PostBack Script了
至此KMessageBox服务端的封装工作全部结束。做到,不影响原来的编码方式,只需要简单的执行一下KMessageBox的RegisterConfrim函数为control注册一下客户端事件就搞定一切。