在提交时在asp.net页面中显示加载图像

时间:2014-02-03 05:41:46

标签: javascript jquery asp.net

我需要在提交事件的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的按钮将触发页面上显示的其他Page_ClientValidate()的{​​{1}},然后在验证摘要中显示错误消息,尽管它提交了页面,但是:

  1. 它显示了与片刻无关的验证摘要(直到返回请求的页面)。
  2. 如果按下一个带有ValidationGroup的按钮,并且发生验证错误,它将取消后面的所有提交/ javascript方法。
  3. 在DropDown或CheckBox方法中调用相同的方法ValidationGroup事件?
  4. 注意#:我正在尝试避免更新面板的事情,以及其他ajax调用的想法截至目前。只需在上面的代码中进行一些优化。

1 个答案:

答案 0 :(得分:0)

您必须确定选择器。 例如,对于需要显示加载图像的按钮使用某个类(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();
        } 
    }
});