MagicAjax问题集(一)

首先声明,我非常非常喜欢MagicAjax(或者我换个说法吧,AjaxPanel) ,因为它让我可以在Asp.net 1.1轻松地涌上无刷新页面技术,特别是面对常常的表单,每次Postback都使页面回到顶头位置,使得页面感受异常的差。
我之所以写这篇文章,并不是诋毁MagicAjax,反而希望大家能够并重就轻地使用它。

一、JavaScript & 验证控件
大家都知道,Asp.net中的验证控件,都是基于一个叫做WebUIValidation.js中的一些函数而实现的,如果你删除了他,当页面中没有这种验证控件不在页面上出现的话,就不会提示出错,但是一旦你的页面出现了它,Asp.net就会自动将WebUIValidation.js引入,
不是在Head标签里,而是在body标签里面找到一句:
。。。。。
。。。。。。。。。
。。。。。。。。。。。。。。
< body >
        
< form name = " login "  method = " post "  action = " Default.aspx "  
                   language
= " javascript "  onsubmit = " if (!ValidatorOnSubmit()) return false; "  id = " login " >
< input type = " hidden "  name = " __VIEWSTATE "
            value
= " dDwtOTk3NzU3MDM0OztsPFNpZ25JbjE6SW1hZ2VCdXR0b24xOz4+tU/5NOWoUoYg6jAib+Idyfy23Fc= "   />


    


<script language="javascript" type="text/javascript" 
              src="/aspnet_client/system_web/1_1_4322/WebUIValidation.js"></script>






            
< table width = " 100% "  height = " 100% "  border = " 0 "  cellspacing = " 0 "  cellpadding = " 0 " >
                
< tr >
                    
< td height = " 200 " >& nbsp; </ td >
                
</ tr >
。。。。。。。。。。。。。。
。。。。。。。。。。
。。。。。


问题就出在这样一个情景,我在一个page中有一个AjaxPanel(这个页面中没有验证控件),我将一个用户控件(.ascx,这个用户控件里面有验证控件),用LoadControl将它Load 进这个AjaxPanel里面,问题就出现了,当你浏览的时候就会弹出一个对话框,说找不到 WebUIValidation.js 这个文件,但是明明还是在的啊。

我估计是由于页面现在是部分刷新的,大家可以留意这句话
<script language="javascript" type="text/javascript" 
              src
="/aspnet_client/system_web/1_1_4322/WebUIValidation.js"></script>
不是在AjaxPanel里面,所以不会被加上。

解决方法很简单,在Head标签里加一句:
<script language="javascript" type="text/javascript" 
              src
="/aspnet_client/system_web/1_1_4322/WebUIValidation.js"></script>
让它强制load进这个JS文件。


 

你可能感兴趣的:(JavaScript,asp.net,action,border,login,PostBack)