【问题标题】:Run javascript function after Server-Side validation is complete服务器端验证完成后运行 javascript 函数
【发布时间】:2010-03-26 17:16:58
【问题描述】:

好的,我在 UpdatePanel 中有一个带有小表单(2 个字段)的灯箱,我想在按下“保存”按钮时关闭此灯箱(必须通过 javascript 完成)。

但是,页面上需要有一个服务器端 CustomValidator,我只想在它返回有效时关闭灯箱。

有人知道从服务器端验证器触发 javascript(或 jQuery)代码的方法吗?

【问题讨论】:

    标签: c# asp.net javascript jquery


    【解决方案1】:

    您可以使用ScriptManager 添加一点sn-p 代码,以便在响应返回到UpdatePanel 后执行。

    if (Page.IsValid){
    
       ScriptManager.RegisterStartupScript(
                customValidator1, 
                typeof(MyPageClass), 
                "closeBox",
                "myLightBoxVariableOnThePage.close()",
                true);
    }
    

    【讨论】:

      【解决方案2】:

      当服务器端验证器运行时,它会向浏览器发送一个全新的页面。之前在浏览器中显示的所有内容都被销毁,包括保存在您的 javascript 中的任何状态。如果新页面与旧页面非常相似,您应该认为这是一个快乐的巧合。

      因此,这里要做的不是执行 javascript 函数,而是让您的 CustomValidator 在成功时对页面进行正确更改,以便首先正确地将其呈现给浏览器。

      【讨论】:

      • 不幸的是,灯箱根本不会那样工作,它是一个 jQuery 灯箱(建立在 FaceBox 之上),在回发后如果不从更新面板上下文中删除它就无法保持打开状态。这很复杂,因此我需要在有效时运行一些 javascript 代码,而不是仅仅让灯箱不可见或其他东西。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-08
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2010-09-14
      相关资源
      最近更新 更多