在利用VS2005进行Web开发的过程中,需要使用各种服务器控件。一般情况下,VS2005的常用控件都是可以和ASP.NET AJAX控件结合使用的。但是,以下控件与ASP.NET AJAX控件有不相兼容的地方,是需要注意的。
与UpdatePanel控件不兼容的控件
⑴TreeView和Menu控件; Web Parts 控件; Substitution控件。
⑵登录控件,如Login,PasswordRecovery,Change Password和CreateUserWizard控件。在默认情况下,上述控件与UpdatePanel控件是不相兼容的。当上述控件转换为可编辑状态时,登录控件中的验证控件便可以与UpdatePanel控件兼容。
⑶验证控件类。如BaseCompareValidator,BaseValidator,CompareValidator,customValidator,RangeValidator,Regular ExpressionValidator,RequiredFieldValidator和Validation Summary控件。这些控件在默认情况下也可以与UpdatePanel控件结合使用,但是在Web应用程序发布之后,上述验证功能可能会出现失效情形。要使得这些验证控件能与UpdatePanel控件兼容,需要把上述验证类控件的Enable ClientScript属性设置为false。这样,就不允许客户端脚本被用于在浏览器端执行验证操作。在异步式提交操作中,验证控件就会在服务器端执行验证操作。
⑷GridView和DetailsView控件。在默认情况下,GridView和DetailsView控件与UpdatePanel控件可正常兼容使用。但是,如果把它们的EnableSortingAndPagingCallbacks属性设置为True的时候(默认值为False),在UpdatePanle中的GridView和DetailsView控件的排序和分页功能将失效。
⑸FileUpload控件。FileUpload控件在默认情况下,放在UpdatePanel中并且有控件触发时,不能发挥上传作用。但是当UpdatePanel的Triggers属性中,设置触发控件(例如Button,)为PostBack时,FileUpload可以发挥上传功能,只是整个页面不能局部刷新。
页面跳转要注意的问题
通常情况下,开发Web应用程序就必然会有页面之间的传值与跳转。如果UpdatePanel内有触发页面跳转的控件(如Button),那么该控件的事件中就不能用如下的语句,否则会弹出异常的对话框。
⑴ 调用Response.Write():
⑵ 调用Response filters:
⑶ HttpModules:
⑷ 调用Server.Transfer()。
利用ASP.NET AJAX控件后,弹出对话框的问题
在使用ASP.NET AJAX控件后,如果想利用Js脚本来输出一些提示对话框,往往会想到利用 Page.Register ClientScriptBlock或者 Page.RegisterStartupScript注册,但是,页面上仍然没有提示信息。利用如下语句即可以解决这个问题:
ScriptManager.RegisterClientScriptBlock(UpdatePanel1,this.GetType(),"click","alert('提示信息')",true); 就可以正常的弹出alert对话框了。
需要注意的是,如果在页面中有多个UpdatePanel,如果每个UpdatePanel的UpdateMode的属性值都是“always”(默认值),则可以使用那个UpdatePanel的实例作为参数;如果每个UpdaePanel的UpdateMode属性值为conditional,那么就必须使用正在更新的那个UpdatePanel作为参数,这样脚本才能起作用。
本文作者:网友 来源: http://hi.baidu.com/dpxdqx/blog/
CIO之家 www.ciozj.com 微信公众号:imciow