【问题标题】:UpdatePanel + Validators works! Stops async requests for sometime after validation thoUpdatePanel + 验证器有效!在验证后停止异步请求一段时间
【发布时间】:2011-07-21 21:25:07
【问题描述】:

这不是关于验证器和更新面板兼容性的老问题。

这是我的场景:

我有一个带有脚本管理器的 aspx 页面。这个页面有一个带有我功能的 ascx 用户控件。在这个控件中,我有一些面板和区域,这些面板和区域将根据访问者通过单击一些控制此行为的单选按钮选择的内容来启用/禁用或可见/隐藏。 到目前为止一切都很好。 Validators 和 UpdatePanel 不会互相争斗,但是,如果我尝试在不填写表单的情况下提交页面,我会在摘要中收到一条验证消息,并且验证本身很好。这是问题所在,单选按钮,负责设置某些区域的可见性的组件停止工作,但在第二次或第三次单击后又开始工作。这不是延迟或任何东西..似乎处理程序没有绑定到控件,然后我再次单击,它会清除摘要和所有错误通知并重新开始工作.. 我不知道它是否会增加问题,但用户控件和页面都有 Telerik 控件,例如按需加载的组合框、工具提示和加载面板..

我对此进行了很多搜索,但我能找到的只是关于验证控件在 updatepanel 中不起作用或 updatepanel 无法与验证器一起使用的问题。在这种情况下,它确实有效,我只有在 之后遇到问题 验证已执行,page.isvalid 设置为 false..

【问题讨论】:

    标签: asp.net updatepanel validation


    【解决方案1】:

    在我看来,ajax 发送的第一个请求中存在服务器错误。所以这是我的建议:

    在 Firefox 中打开您的网页,然后打开 Firebog 并选择“网络”选项卡。此选项卡显示浏览器向服务器发送的每个请求(包括对脚本、图像等的请求...以及 ajax 异步请求)。

    所以现在清除firebog中“network”下的列表并第一次触发你的ajax,看看是否有任何请求发送到服务器。如果有,您可以查看响应是 OK 200 响应还是 500 服务器错误,当然您可以查看错误的完整详细信息。

    希望这会有所帮助。

    【讨论】:

    • 是的..我已经尝试过那个..发生的情况是在那段时间请求没有发生,所以我无法在网络选项卡上观看..同样的chrome .. 几乎就像当时没有为这些控件设置其内部客户端事件处理程序.. 如果将我的自定义客户端脚本绑定到控件时出现问题,我可以使用 add_endRequest 轻松解决它,但它似乎是内置的-in 脚本需要一些时间才能启动..
    • 我刚刚注意到的一件事是,在每次异步请求时,我都会在 chrome 控制台上收到此错误:“未捕获的 Sys.InvalidOperationException:Sys.InvalidOperationException:控件已与元素关联。”我现在要调查这个,因为它听起来像是相关的..
    • 我已经通过在我的脚本管理器上添加属性 ScriptMode="Release" 修复了 InvalidOperationException,但是请求仍然没有通过,更糟糕的是,带有覆盖的 ajax 面板得到每个请求都变得越来越暗,以至于我们再也看不到任何东西了.. 走的路
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    • 2016-01-29
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    相关资源
    最近更新 更多