我需要在提交事件的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}},然后在验证摘要中显示错误消息,尽管它提交了页面,但是:
ValidationGroup
的按钮,并且发生验证错误,它将取消后面的所有提交/ javascript方法。ValidationGroup
事件?注意#:我正在尝试避免更新面板的事情,以及其他ajax调用的想法截至目前。只需在上面的代码中进行一些优化。
答案 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();
}
}
});