ASP.NET+AJAX解决网页打开等待问题
页面一打开加裁Gridview并显示页面上。Gridview有一列计算列。
我现在要实现的是。加裁Gridview时计算列不计算。等页面显示出来了,再一行一行计算。计算一个显示在页面。这效果可以看得到。请问这要怎么实现
注意:是页面完全打开显示后再计算。不是加裁Gridview是计算
我是这样做的:
在页面最下面。循环gridview,得到一值传到一ashx页面中处理,得到另一值返回并显示。但最后页面中只显示了循环最后一次得到的值。
我敢确定的是每次循环都得到了一值
但如果加个 alert(vart);这样每个返回值都一一显示出来了
<script>
var vart
$("#divgridAdd").find('span').each(function(i){
if(this.id.indexOf('_laNumber')>0)
{
if($("#"+this.id+"").text()!='')
{
vart=this.id.replace('_laNumber','_txtMoney');
// alert(vart);
creatReq($("#"+this.id+"").text());
}
}
});
function creatReq(num) // 创建xmlhttprequest,ajax开始
{
var url="ShowSubject.ashx?num="+num+"&bill="+$('#txtCode').val()+""; //要请求的服务端地址
if(window.XMLHttpRequest) //非IE浏览器,用xmlhttprequest对象创建
{
req=new XMLHttpRequest();
}
else if(window.ActiveXObject) //IE浏览器用activexobject对象创建
{
req=new ActiveXObject("Microsoft.XMLHttp");
}
if(req) //成功创建xmlhttprequest
{
req.open("post",url,true); //与服务端建立连接(请求方式post或get,地址,true表示异步)
req.onreadystatechange = callback; //指定回调函数
req.send(null); //发送请求
}
}
function callback() //回调函数,对服务端的响应处理,监视response状态
{
if(req.readyState==4) //请求状态为4表示成功
{
if(req.status==200) //http状态200表示OK
{
Dispaly() ;//所有状态成功,执行此函数,显示数据
}
else //http返回状态失败
{
alert("服务端返回状态" + req.statusText);
}
}
else //请求状态还没有成功,页面等待
{
}
}
function Dispaly() //接受服务端返回的数据,对其进行显示
{
var res=req.responseText;
$("#"+vart+"").val(res);
}
</script>