Custom Control Challenge - Entry #1
Credit goes to: crms -at- sina.com
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace TestCode
{
[ToolboxData("<{0}:WaitCursor runat=server></{0}:WaitCursor>")]
public class WaitCursor : Control
{
protected override void OnInit(EventArgs e)
{
//only allow one waiting for each page
if (HttpContext.Current.Items["Waiting"] == null)
{
Page.Response.Write(@"<div id='myid'
style='width:100%;height:100%;z-index:9999;background-color:white'>loading...</div>");
Page.Response.Write(@"<script language='javascript'>
var c = document.getElementsByName('myid')[0];
c.style.display='';
var t = null;
var m = function()
{
if(document.readyState == 'complete')
{
c.style.display = 'none';
clearInterval(t);
}
}
//maybe we should make the interval configurable
t = setInterval(m,100);
</script>
");
Page.Response.Flush();
HttpContext.Current.Items["Waiting"] = "yes";
}
}
}
}