gpt4 book ai didi

UpdatePanel 中的 ASP.NET 验证器

转载 作者:行者123 更新时间:2023-12-03 21:23:26 26 4
gpt4 key购买 nike

由于运行时限制,我正在使用旧版本的 ASP.NET AJAX,在更新面板中放置 ASP.NET 验证器不起作用。是否有使这些工作的技巧,或者我是否需要使用 AJAX 工具包附带的 ValidatorCallOut 控件?

最佳答案

我怀疑您正在运行 .NET 2.0 的原始版本 (RTM)。

直到 2007 年初,验证器控件才与 UpdatePanels 兼容。这已通过 .NET Framework 的 SP1 解决。

问题的根源在于 UpdatePanel 可以检测页面中的标记更改,但无法正确跟踪脚本。验证器严重依赖脚本。在部分回发期间,脚本要么被吹走,要么没有更新,要么没有按预期运行。

在早期的测试版中,MS 让 UpdatePanel 尝试猜测需要重新渲染或运行哪些脚本。效果不太好,他们不得不把它拿出来。

为了解决眼前的问题,微软在一个名为 Validators.DLL 的新 DLL 中发布了验证器类的修补版本,并给出了如何告诉 ASP.NET 使用这些类而不是真正的类的说明。如果您在 Google 上搜索该 DLL 名称,您应该会找到更多信息。另见 This blog post .

这是一种阻止措施,您不应该使用它,如果可能的话避免它。

不久之后,在 .NET 2.0 SP1 中就出现了问题的真正解决方案。 Microsoft 引入了一种在 SP1 中注册脚本的新机制,并将真正的验证器类更改为使用该机制而不是旧机制。

让我为您提供一些有关更改的详细信息:

传统上,您应该通过 Page 方法注册脚本,例如 Page.RegisterStartupScript() 和 Page.RegisterClientScriptBlock()。问题是这些方法不是为可扩展性而设计的,UpdatePanel 无法监控这些调用。

在 SP1 中,页面上有一个名为 Page.ClientScripts 的新属性对象。该对象具有注册与原始脚本等效(并且在某些方面更好)的脚本的方法。此外,UpdatePanel 可以监视这些调用,以便在适当的时候重新渲染或调用这些方法。旧的 RegisterStartupScript() 等方法已被弃用。它们仍然有效,但不在 UpdatePanel 内。

没有理由(除了政治,我想)不将您的安装更新到 .NET 2.0 SP1。 Service Pack 带有重要的修复程序。

祝你好运。

关于UpdatePanel 中的 ASP.NET 验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com