全面分析PostBack之Client Script


 -Written by 浪子@cnblogs.com (2006.08.14)

问题描述:

 

   继上文

 

问题分析:

  

   PostBack2种方式

1、  通过__doPostBack(eventTarget, eventArgument),例如LinkButton;

2、  通过formsubmit方式,例如采用UseSubmitBehaviorButton

   

   对于button,可能会有三种绘制方式:

1、  buttonUseSubmitBehaviortrue,并且没有触发验证事件;

采用formsubmit方式,不需要描绘script

2、  buttonUserSubmitBehaviorfalse,并且没有触发验证事件;

采用__doPostBack函数

3、  button有触发验证事件:

采用WebForm_DoPostBackWithOptions(options)函数




 

 

 

问题解决:

 

   我需要的是采集PostBackClient Script,所以只需要获取__doPostBack或者WebForm_DoPostBackWithOptionsoptions)函数,以便传给KMessageBox进行事件挂载。

 

   按上面的分析我们已经知道什么情况下使用__doPostBack,什么情况下使用WebForm_DoPostBackWithOptionsoptions)。

  分析一下Reflector出来的Button源码:
 


    有了这段代码,我们就可以很清晰的得到服务端如何决定采取什么方式来绘制客户端的PostBack Script了

;

   
[JavaScript]自定义MessageBox续-全面分析PostBack之Client ScriptIButtonControl button = (IButtonControl)control;
[JavaScript]自定义MessageBox续-全面分析PostBack之Client Script
[JavaScript]自定义MessageBox续-全面分析PostBack之Client Script                    
if ((button.CausesValidation && (this.Page.GetValidators(button.ValidationGroup).Count > 0)) || !string.IsNullOrEmpty(button.PostBackUrl))
                    }


     至此KMessageBox服务端的封装工作全部结束。做到,不影响原来的编码方式,只需要简单的执行一下KMessageBox的RegisterConfrim函数为control注册一下客户端事件就搞定一切。

相关文章:

  • 2021-07-02
  • 2021-10-19
  • 2021-09-14
  • 2021-05-30
  • 2022-12-23
  • 2022-12-23
  • 2021-08-13
  • 2021-11-04
猜你喜欢
  • 2022-01-15
  • 2021-08-03
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案