2011-11-27 76 views
0

我正在寻找解决方案,我的问题两天,我没有找到任何可以帮助。我有两个页面:第1页和第2页 第1页包含将被发送到第2页和一个按钮参数“创建” 第2页包含GridViewpage_load我有在运行时加载gridview时加载图像

GetParameters() ; // extract parameters 
PrepareParameters(); // prepare local variable 
DataTable dt = CreateDataTable(); // create the BoundField/Columns based on prepared local variables 
myGridView.DataSource = dt; 
myGridView.DataBind(); 

我的问题是,该方法PrepareParameters()由于数据量巨大,即使优化,也需要时间。当我点击“创建”按钮时,浏览器不会移动到第2页,而是它不响应并停留在第1页,用户不知道会发生什么。 所以我想知道如何将浏览器重定向到page2并向用户显示网格上的加载动画,直到PrepareParameters()完成处理数据并在完成后显示GridView? 感谢您的回复。

回答

0

您可以使用Javascript来做到这一点。获取任何你喜欢的装载机图像,网上有很多可用的,google it

把这个图像顶部/底部的网格,分配一些id给它,并设置默认属性Visible = false。 现在在按钮上点击调用JavaScript,你可以看到这个图像。

示例代码

<html> 
<head> 
<script type="text/javascript" language="JavaScript"> 

function Loading() { 
    document.getelemanebyId('Img').visibility = visible; 
} 
</script> 
</head> 
<body> 

<form action="" method="POST" id="myForm"> 

//Gridview control here 
<img id="Img" src="give image file path" runat="server" visible="false"/> 
<button name="Create" onClientClick="Loading();" runat="server" > 

</form> 
</body> 
</html> 
+0

嗨Pramodtech,谢谢您的答复。其实我在任何地方都看到了这个解决方案,我认为它不适合我的问题,但是我试了一下并且不起作用。浏览器保持在第1页,直到浏览器完成。 –

+0

是浏览器将保持在同一页面上只有东西正在加载图像将显示,以便用户不会对发生的事情感到困惑。你可以做的其他事情是,在div中保持网格并使用上面提到的javascript隐藏这个网格。我不认为你可以重定向到下一页,直到页面1的操作结束。 – pramodtech

+0

但PrepareParameters()是第2页和网格中的方法吗? –