我有一个用户保存数据的 ASP.NET 页面。当他们单击保存按钮时,数据会保存在 vb 中,并且页面会重新加载以更新页面上的当前数据,以及他们刚刚保存的新数据。此页面上的某些数据库查询需要一段时间,并且用户在重新加载页面时尝试在页面上执行其他操作。
我可以以某种方式显示进度条的前面和中心吗?我一直在四处寻找,并找不到任何东西。我也不做回发。我正在重新加载页面以执行在页面加载时完成的查询。
我正在寻找 javascript、jquery 或 vb 解决方案。
我有一个用户保存数据的 ASP.NET 页面。当他们单击保存按钮时,数据会保存在 vb 中,并且页面会重新加载以更新页面上的当前数据,以及他们刚刚保存的新数据。此页面上的某些数据库查询需要一段时间,并且用户在重新加载页面时尝试在页面上执行其他操作。
我可以以某种方式显示进度条的前面和中心吗?我一直在四处寻找,并找不到任何东西。我也不做回发。我正在重新加载页面以执行在页面加载时完成的查询。
我正在寻找 javascript、jquery 或 vb 解决方案。
我建议使用 jquery 异步加载页面,并显示动画 gif 以显示它正在加载。在 jquery 中加载页面后,您可以删除动画 gif / 刷新页面。
$(document).ready(function () {
**$('<img src="/Images/ajax-loader.gif"')
.appendTo(#someID)**
...<ajax call to load page>...
**$('#someID').find('img').remove();**
});
人们通常通过放置加载动画而不是进度条来解决这个问题,因为为了了解页面的实际进度,您必须使用我目前不理解(或者甚至不存在)的不自然的复杂机制。
您可以在表单提交上触发一个简单的 javascript 事件,该事件将一个类添加到 BODY 并在加载后将其删除(如果它是一个 ajax 查询,否则它会自行删除)。这些示例事件适用于非 ajax 形式:
像这样(纯 JavaScript):
document.forms[0].onsubmit = function(){
document.body.className += ' t-loading';
}
或者使用 jQuery:
$('FORM').submit(function(){
$(document.body).addClass('t-loading');
});
然后你添加一个这样的CSS
BODY.t-loading { background:url(loading.gif) center center no-repeat; }
BODY.t-loading * { visibility:hidden; }