首页 / 知识
UpdatePanel中的ASP.NET验证器
2023-04-13 12:36:00

ASP.NET Validators inside an UpdatePanel由于运行时限制,我使用的是ASP.NET AJAX的较旧版本,将ASP.NET验证程序放置在更新面板中不起作用。有什么技巧可以使这些工作正常进行,还是我需要使用AJAX工具包随附的ValidatorCallOut控件? 我怀疑您正在运行.NET 2.0的原始发行版(RTM)。 直到2007年初验证器控件与UpdatePanels都不兼容。 .NET Framework的SP1已解决此问题。 问题的根源是UpdatePanel可以检测页面中的标记更改,但无法正确跟踪脚本。验证器严重依赖脚本。在部分回发期间,脚本要么被吹散,未更新,要么在有意时不运行。 在早期测试版中,MS使UpdatePanel尝试猜测需要重新呈现或运行哪些脚本。效果不是很好,他们不得不将其取出。 为解决当前的问题,Microsoft在名为Validators.DLL的新DLL中发布了验证器类的修补版本,并提供了有关如何告诉ASP.NET使用那些类而不是实际类的说明。如果您使用Google提供该DLL名称,则应该找到更多信息。另请参阅此博客文章。 这是一种制止措施,您应 此问题的真正解决方案很快出现在.NET 2.0 SP1中。 Microsoft引入了一种在SP1中注册脚本的新机制,并更改了实际的验证器类以使用该机制,而不是旧的机制。 让我为您提供有关更改的详细信息: 通常,您应该通过Page方法注册脚本,例如Page.RegisterStartupScript()和Page.RegisterClientScriptBlock()。问题在于这些方法不是为扩展性而设计的,UpdatePanel无法监视这些调用。 在SP1中,页面上有一个名为Page.ClientScripts的新属性对象。该对象具有注册与原始脚本等效(并且在某些方面更好)的脚本的方法。另外,UpdatePanel可以监视这些调用,以便在适当时重新渲染或调用方法。不推荐使用较旧的RegisterStartupScript()等方法。它们仍然可以工作,但是不能在UpdatePanel内部工作。 没有理由(我想是出于政治原因)不将您的安装更新到.NET 2.0 SP1。 Service Pack包含重要的修复程序。 祝你好运。
由于它们替换了原始类,因此您将悄悄地绕过Microsoft将来可能发布(或可能已经发布)的任何错误和安全修复程序,增强功能等。除非您仔细查看web.config,否则您可能永远不会注意到自己正在跳过补丁。 当然,您必须评估每种情况。如果您绝对无法使用.NET 2.0 RTM,那么Validators.dll总比没有好。 @jmein 实际上,问题在于,当将验证程序客户端脚本放在updatePanel内时不起作用(UpdatePanels使用.innerHTML刷新,这会将脚本节点添加为文本节点,而不是脚本节点,因此浏览器不会运行它们) 。 此修复程序是由Microsoft发布的修补程序,用于修复此问题。我在Google的帮助下找到了它。 http://blogs.msdn.com/mattgi/archive/2007/01/23/asp-net-ajax-validators.aspx 如果出于某种原因您无法使用ASP.NET验证程序控件的udpated版本实际上很容易自己验证一个验证组,那么您要做的就是调用
然后,您可以根据需要使用PageRequestManager执行验证。 一定要使用更新的验证控件,但是我对JavaScript还是很偏爱;) |
最新内容
相关内容
怎么计算python程序运行时间
怎么计算python程序运行时间,时间,培训,程序,方式,脚本,下面,以上,两个,结束,不是,python脚本使用统计时间的方式是time.clock(),而这种方式统Python怎么运行shell脚本
Python怎么运行shell脚本,培训,命令,文件,方法,脚本,文件夹,对象,建议,结果,内容,Python作为一门脚本语言,有时候需要与shell命令交互式使用,在Mac终端下直接运行Python的.py程序
Mac终端下直接运行Python的.py程序,位置,培训,终端,文件,注释,权限,继续,程序,空格,文件名,1.在文件中添加注释首先在你所要运行的python文件python代码运行需要编译吗
python代码运行需要编译吗,代码,培训,做好,体系,平台,语言,机器码,目标,厨师,下次,有人在讨论Python代码是编译执行还是解释执行?这个问题还如何获取当前运行python文件路径
如何获取当前运行python文件路径,名字,培训,路径,脚本,绝对路径,文件,指令,模块,定义,所在,获取当前执行主脚本方法:sys.argv[0]和_file_(1)sypython如何在linux下运行python
python如何在linux下运行python,培训,绝对路径,文件,程序,这个地方,头部,文本,上面,以上,时候,Linux下运行python有两种方式:1、直接使用pythopython怎么在cmd运行文件夹
python怎么在cmd运行文件夹,培训,路径,文件夹,文件,以上,程序,方法,更多,内容,python是一门高级测面向对象的程序设计语言。运行Python,可在python cmd中怎么运行python文件
python cmd中怎么运行python文件,培训,文件,路径,以上,程序,方法,更多,内容,运行Python,可在交互模式下运行,或者命令行中。命令行中运行的是pythonid函数如何运行
pythonid函数如何运行,培训,地址,代码,对象,函数,内存,类型,可能会,整数,字符串,id(object)功能:返回的是对象的“身份证号”,唯一且不变,但在不python怎样启动python程序运行
python怎样启动python程序运行,代码,环境,项目,工具,培训,业务,有限,程序,源文件,功能,执行Python程序的三种方式解释器——python/python3交python用哪个软件编写运行python
python用哪个软件编写运行python,软件,环境,代码,培训,服务,分析,工具,功能,程序,系列,编写和运行Python代码的软件叫IDE,也就是集成开发环境python程序怎么运行
python程序怎么运行,系统,代码,名称,培训,平台,语句,模式,结果,提示符,命令,安装完Python在Windows或Linux中的终端中直接输入python即进入Py