RegisterStartupScript在EasyUI框架下代码二次执行

     这两天写一个小东西,用到了EasyUI框架,这个东西还是相当不错的,省去了很多不必要的麻烦。不过因为功能丰富所以也就造成了自己写的代码反而不能很好的接洽。例如题目中说到的RegisterStartupScript之后的js代码在EasyUI框架下代码执行两次的问题。

     因为第一次用所以当时也不明所以,当时是要在一个按钮执行后弹出一个提示,就用了Page.ClientScript.RegisterStartupScript注册一段js代码到页面,但是这个时候诡异的事情就发生了居然弹出两个框

跟踪代码,一切okay没有二次执行,那就是页面的问题。

于是先把代码注释,在页面jQuery初始化实事件中加了一个提示,打开页面。结果只提示一次,这个时候就很容易说明了,是body中出了问题,因为通过 RegisterStartupScript注册的代码是注册到body中的,也就是说body被处理了两次,最后发现是body中class的问题,<body class="easyui-layout" >  这个class重新处理了body。有了这那就很容易解决了:

在js文件中定义了如下方法

  
  
  
  
  1. var _successAlert; 
  2. function SuccessAlert() { 
  3.     if (_successAlert!= "yes") { 
  4.         $.messager.alert('提交成功''更新成功''info'); 
  5.         _successAlert= "yes"
  6.     } 

很简单 在cs的代码:

   
   
   
   
  1. Page.ClientScript.RegisterStartupScript(this.GetType(), "SuccessAlert""<script> SuccessAlert();</script>"false);  

调用js方法,执行okay!

你可能感兴趣的:(easyui,职场,休闲,js执行两次)