【问题标题】:Show loading image in asp.net page on submit在提交时在 asp.net 页面中显示加载图像
【发布时间】:2014-02-03 05:41:46
【问题描述】:

我需要在提交事件时在 asp.net 页面中显示加载图像。我在这里和那里搜索了很多想法,但没有找到适合我的完美解决方案。尽管如此,我还是可以自己写一个。虽然,这里是 show loading image while the page is loading 但我不认为它会寻找页面验证。

我在页面提交时调用的 JS。

$(document).ready(function () {
    $(this).submit(function () {
        $("#overlay").fadeIn(30);// Call (Show) loading box by default.
        if (Page_ClientValidate() != null) //Check if there is a validation on page.
            {
            if (!Page_ClientValidate()) {//If Validation returns false then hide the loading box
                $("#overlay").hide();
            } 
        }
    });
});

这是我的加载 div:

<div style="display: none" id="overlay">
        <div id="modalprogress">
            <div id="theprogress">
                <img alt="Loading... Please wait" src="../App_Themes/Theme1/images/processing.gif">
            </div>
        </div>
    </div>

默认情况下,此 div 保持隐藏状态。一旦单击提交按钮,它就会调用用于验证页面的 Page_ClientValidate() 方法。对我来说效果很好,但问题很少。

带有不同ValidationGroup 或没有ValidationGroup 的按钮将触发页面上存在的其他ValidationGroupPage_ClientValidate(),然后在验证摘要中显示错误消息,尽管它提交了页面,但是:

  1. 它显示不相关的验证摘要/片刻(直到返回请求的页面)。
  2. 如果按下带有ValidationGroup 的按钮并发生验证错误,则会抑制随后的所有提交/javascript 方法。
  3. 有什么方法可以在 DropDown 或 CheckBox 方法AutoPostBackEvents 中调用相同的方法?

注意#:到目前为止,我正试图避免更新面板的事情,以及其他 ajax 调用想法。只需要在上面的代码中进行一些优化。

【问题讨论】:

    标签: javascript jquery asp.net


    【解决方案1】:

    您必须确定选择器。 例如,为需要显示加载图像的按钮使用特定类 (showLoadingImg),这样做可以避免其他按钮单击。

    $('.showLoadingImg').submit(function () {
        $("#overlay").fadeIn(30);// Call (Show) loading box by default.
        if (Page_ClientValidate() != null) //Check if there is a validation on page.
            {
            if (!Page_ClientValidate()) {//If Validation returns false then hide the loading box
                $("#overlay").hide();
            } 
        }
    });
    

    【讨论】:

    • 这就是我不想要的。让我们举一个应用程序示例,该应用程序大约有 100 个页面,每个页面至少有 2 个提交按钮,然后我必须在所有 200 个按钮中编写此类。我想要一些东西(对于提交按钮),当页面被提交并且验证返回 true 时会自动触发。
    • 好吧,可以肯定的是,我也尝试了您的解决方案,但它似乎根本不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    • 2011-11-06
    • 1970-01-01
    • 2019-11-20
    • 1970-01-01
    相关资源
    最近更新 更多