上传文件1111
using System;<br>using System.IO;<br>using System.Web;<br>using System.Web.UI;<br>using System.Web.UI.WebControls;<br>using System.ComponentModel;<br>using System.ComponentModel.Design;<br><br>namespace myControl<br>{<br> /**//// <summary><br> /// 客户端计时器clientTimer控件<br> /// 在线考试系统中卷面计时所用,你可以自由修改<br> /// 丛兴滋(cncxz) 2005-12-3<br> /// </summary><br> [Description("客户端计时器clientTimer")]<br> [Designer(typeof(clientTimerDesigner))]<br> [ToolboxData("<{0}:clientTimer runat=server></{0}:clientTimer>")]<br> public class clientTimer: System.Web.UI.WebControls.PlaceHolder<br> {<br><br> public onTimeOutEventHandler onTimeOut; //超时事件<br> private LinkButton myLB;<br> private Label myLabel;<br><br> <br><br> [Browsable(true),Category("计时相关"),DefaultValue(TimeOutUnitsType.Minute),Description("计时单位,有秒、分钟、小时三种,默认为分钟。")]<br> public TimeOutUnitsType TimeOutUnits<br> {<br> get<br> {<br> object obj=ViewState["TimeOutUnits"];<br> return (obj==null)?TimeOutUnitsType.Minute:(TimeOutUnitsType)obj;<br> }<br> set<br> {<br> ViewState["TimeOutUnits"]=value;<br> }<br> }<br><br><br> [Browsable(true),Category("计时相关"),DefaultValue(30),Description("计时超时时间(单位与TimeOutUnits属性一致)。")]<br> public int TimeOutLength<br> {<br> get<br> {<br> object obj=ViewState["TimeOutLength"];<br> return (obj==null)?30:int.Parse(obj.ToString());<br> }<br> set<br> {<br> ViewState["TimeOutLength"]=value;<br> }<br> }<br> <br><br> [Browsable(true),Category("计时相关"),DefaultValue(0),Description("已用去的时间(单位与TimeOutUnits属性一致)。")]<br> public int PassTimeLength<br> {<br> get<br> {<br> object obj=ViewState["PassTimeLength"];<br> return (obj==null)?0:int.Parse(obj.ToString());<br> }<br> set<br> {<br> ViewState["PassTimeLength"]=value;<br> }<br> }<br><br><br> [Browsable(true),Category("行为"),DefaultValue(false),Description("是否以倒计时的方式显示友好界面,是则显示还剩多少时间,否则显示用了多少时间。")]<br> public bool CountDown<br> {<br> get<br> {<br> object obj=ViewState["CountDown"];<br> return (obj==null)?false:(bool)obj;<br> }<br> set<br> {<br> ViewState["CountDown"]=value;<br> }<br> }<br><br> [Browsable(true),Category("行为"),DefaultValue(true),Description("是否启用计时器")]<br> public bool TimerEnabled<br> {<br> get<br> {<br> object obj=ViewState["TimerEnabled"];<br> return (obj==null)?true:(bool)obj;<br> }<br> set<br> {<br> ViewState["TimerEnabled"]=value;<br> }<br> }<br> <br> <br><br><br> public clientTimer()<br> {<br> myLB=new LinkButton(); <br> myLB.Click+=new EventHandler(myLB_Click);<br> myLabel=new Label();<br> }<br><br> private void myLB_Click(object sender, System.EventArgs e){<br> if(onTimeOut!=null){<br> onTimeOut();<br> }<br> }<br><br> protected override void OnLoad(EventArgs e)<br> {<br> if(this.TimerEnabled)<br> {<br> myLB.ID=this.ClientID+"_LB_TimeOut";<br> myLB.Text="";<br><br> myLabel.ID=this.ClientID+"_Label_Msg";<br> myLabel.Text="";<br><br> this.Controls.Add(myLB);<br> this.Controls.Add(myLabel);<br> }<br> base.OnLoad(e);<br> <br> }<br><br> protected override void Render(HtmlTextWriter writer) <br> {<br> if(this.TimerEnabled)<br> {<br> switch(this.TimeOutUnits)<br> {<br> case TimeOutUnitsType.Second:<br> writer.Write(this.strJS(1000," 秒"));<br> break;<br> case TimeOutUnitsType.Minute:<br> writer.Write(this.strJS(60000," 分钟"));<br> break;<br> case TimeOutUnitsType.Hour:<br> writer.Write(this.strJS(3600000," 小时"));<br> break;<br> }<br> }<br> base.Render(writer);<br> }<br><br> private string strJS(int intCycLength,string strUnits){<br> <br> string strFunction=this.ClientID+"_Timer";<br> string strTimeOut=this.ClientID+"_TimeOut";<br> string strPassTime=this.ClientID+"_PassTime";<br><br> string scriptString ="\n";<br> scriptString += @"<script language=""JavaScript"">"+"\n";<br> scriptString += @" <!--"+"\n";<br> scriptString += "var "+strTimeOut+"="+this.TimeOutLength.ToString()+"; \n";<br> scriptString += "var "+strPassTime+"="+this.PassTimeLength.ToString()+";\n";<br> scriptString += @" window.attachEvent(""onload"", "+strFunction+");"+"\n";<br> scriptString +="function "+strFunction+"() {\n";<br> scriptString += " if("+strPassTime+"<"+strTimeOut+"){\n";<br> scriptString += @" //未超时"+"\n";<br> scriptString += " "+strPassTime+"+=1;\n";<br> if(this.CountDown)<br> {<br> scriptString += " var myNum="+strTimeOut+"-"+strPassTime+";\n";<br> scriptString += @" document.getElementById("""+this.myLabel.ClientID+@""").innerText=""剩余时间:""+myNum+"""+strUnits+@""";"+"\n";<br> }<br> else<br> {<br> scriptString += @" document.getElementById("""+this.myLabel.ClientID+@""").innerText=""已用时间:""+"+strPassTime+@"+"""+strUnits+@""";"+"\n";<br> } <br> scriptString += " }else{\n";<br> scriptString += @" //时间到"+"\n";<br> scriptString += @" document.getElementById("""+this.myLB.ClientID+@""").click();"+"\n";<br> scriptString += " }\n";<br> scriptString += @" window.setTimeout("""+strFunction+@"()"","+intCycLength.ToString()+@");"+"\n";<br><br> scriptString += "}\n"; <br><br> scriptString += @"//-->"+"\n";<br> scriptString += @"</script>"+"\n";<br> <br><br><br> return scriptString;<br> }<br> }<br><br><br><br> /**//// <summary><br> /// 计时单位的类型。<br> /// </summary><br> public enum TimeOutUnitsType:byte<br> {<br> /**//// <summary><br> /// 秒。<br> /// </summary><br> Second,<br> /**//// <summary><br> /// 分钟。<br> /// </summary><br> Minute,<br> /**//// <summary><br> /// 小时。<br> /// </summary><br> Hour<br> }<br><br> public delegate void onTimeOutEventHandler();<br><br><br><br> public class clientTimerDesigner:System.Web.UI.Design.ControlDesigner<br> {<br> private clientTimer CT;<br> public clientTimerDesigner(){<br><br> }<br> public override string GetDesignTimeHtml()<br> {<br> CT=(clientTimer)Component;<br> string str="";<br> str+=@"<span style=""height:20px;padding:2px 10px 2px 10px;border-left:1px solid #fafafa;border-top:1px solid #fafafa;border-bottom:1px solid #d0d0d0;border-right:1px solid #d0d0d0;FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr='#f5f5f5', endColorStr='#e5e5e5', gradientType='0');"">";<br> str+=CT.ID+@"</span>";<br> return str;<br> }<br> }<br><br> <br><br>}<br>
- 1
- 粉丝: 7
- 资源: 29
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助