【问题标题】:Display message afer save is successful BlockUI Update Panel保存成功后显示信息 BlockUI 更新面板
【发布时间】:2011-04-30 14:39:24
【问题描述】:

我想在服务器端回发后显示一条状态消息。目前要做到这一点,

  1. 我使用 blockUI 来阻止 保存过程中的 div

  2. 我使用更新面板的自定义结束请求处理程序取消阻止 div

  3. 为了显示状态消息,我在服务器端代码的 try catch 块中使用了脚本管理器的 registerstartupscript()。一切正常,但是这会在 div 解锁之前显示状态消息。

如何仅在 div 被解锁后显示我的成功/错误消息?

【问题讨论】:

    标签: asp.net jquery updatepanel asp.net-2.0 blockui


    【解决方案1】:

    您可以尝试pageLoadingpageLoaded script manager event handers 而不是endRequest,即:

    <script type="text/javascript" language="javascript"> 
        Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(PageLoadingHandler);
        function PageLoadingHandler(sender, args) 
        {      
             // hide your blockUI div here
        }
    </script>
    

    -----------------

    或者您还有其他选择。将服务器回调上的消息写入隐藏字段,然后在您的endRequest处理程序隐藏div中,检查隐藏字段中是否有消息,如果消息存在则显示它。

    【讨论】:

    • 问题是因为我使用scriptmanager的启动脚本来显示消息,所以无论我附加什么处理程序,它们总是首先被执行。
    • pageLoading 应该工作:在收到服务器对异步回发的响应之后但在页面上的任何内容更新之前引发。
    • 我添加了另一个选项......但它似乎是肮脏的黑客:)
    • 谢谢 Pavel,那个 hack 就像一个魅力 =) Offtopic,以正确的方式完成这项任务你会推荐使用 JSON 和 Web 方法完成整个工作吗?你有什么建议吗 ?我开始认为我做这件事的方式不对……也许
    • 在我的项目中,我尝试使用“JSON(jQuery,ajax) & web 方法”并避免使用任何更新面板。在这种情况下,您可以自己处理要发送哪些数据、如何处理这些数据、如何解析接收和发送的数据以及您的 UI 在服务器回调期间如何工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    • 2017-04-08
    • 2020-10-08
    • 2013-08-19
    相关资源
    最近更新 更多