问题描述
请各位大侠帮帮忙做了一个购物网站,加有限时抢购(倒计时),然后网站就开始跳动(拖下去,又跳到顶端),该怎么解决了。代码如下前台:<asp:UpdatePanelID="UpdatePanelCountdown"runat="server"UpdateMode="Always"RenderMode="Block"><ContentTemplate><divstyle="font-size:12px;position:relative;width:100%;top:8px;color:#CCCCCC;"><asp:LabelID="Label"runat="server"Text="剩余:"Font-Bold="True"></asp:Label><asp:LabelID="lblTimerDays"runat="server"Text="0"ForeColor="Red"Font-Size="13px"Font-Bold="True"/> 天<asp:LabelID="lblTimerHours"runat="server"Text="0"ForeColor="Red"Font-Size="13px"Font-Bold="True"/> 时<asp:LabelID="lblTimerMinutes"runat="server"Text="0"ForeColor="Red"Font-Size="13px"Font-Bold="True"/> 分<asp:LabelID="lblTimerSeconds"runat="server"Text="0"ForeColor="Red"Font-Size="13px"Font-Bold="True"/> 秒<asp:TimerID="Timer1"runat="server"Interval="1000"OnTick="Timer1_Tick1"/></div></ContentTemplate></asp:UpdatePanel>
后台:publicpartialclassdefault_block_03_limit_sold:System.Web.UI.UserControl{DateTimeNowTime;//当前时间DateTimeEndTime;//=Convert.ToDateTime("2012-05-2908:57:59");//结束时间TimeSpanCountdownSpan;//时间间隔protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){for(inti=0;i<this.DataList_limited_sold_list.Items.Count;i++){Labellb=((Label)(DataList_limited_sold_list.Items[i].FindControl("Label_endtime")));stringaa=lb.Text;EndTime=Convert.ToDateTime(aa);NowTime=DateTime.Now;CountdownSpan=EndTime-NowTime;if(CountdownSpan.TotalSeconds>0){LabellblTimerDays=((Label)(DataList_limited_sold_list.Items[i].FindControl("lblTimerDays")));lblTimerDays.Text=CountdownSpan.Days.ToString();LabellblTimerHours=((Label)(DataList_limited_sold_list.Items[i].FindControl("lblTimerHours")));lblTimerHours.Text=CountdownSpan.Hours>=10?CountdownSpan.Hours.ToString():"0"+CountdownSpan.Hours.ToString();LabellblTimerMinutes=((Label)(DataList_limited_sold_list.Items[i].FindControl("lblTimerMinutes")));lblTimerMinutes.Text=CountdownSpan.Minutes>=10?CountdownSpan.Minutes.ToString():"0"+CountdownSpan.Minutes.ToString();LabellblTimerSeconds=((Label)(DataList_limited_sold_list.Items[i].FindControl("lblTimerSeconds")));lblTimerSeconds.Text=CountdownSpan.Seconds>=10?CountdownSpan.Seconds.ToString():"0"+CountdownSpan.Seconds.ToString();}else{}}}}protectedvoidTimer1_Tick1(objectsender,EventArgse){for(inti=0;i<this.DataList_limited_sold_list.Items.Count;i++){Labellb=((Label)(DataList_limited_sold_list.Items[i].FindControl("Label_endtime")));stringaa=lb.Text;EndTime=Convert.ToDateTime(aa);NowTime=DateTime.Now;CountdownSpan=EndTime-NowTime;if(CountdownSpan.TotalSeconds>0){LabellblTimerDays=((Label)(DataList_limited_sold_list.Items[i].FindControl("lblTimerDays")));lblTimerDays.Text=CountdownSpan.Days.ToString();LabellblTimerHours=((Label)(DataList_limited_sold_list.Items[i].FindControl("lblTimerHours")));lblTimerHours.Text=CountdownSpan.Hours>=10?CountdownSpan.Hours.ToString():"0"+CountdownSpan.Hours.ToString();LabellblTimerMinutes=((Label)(DataList_limited_sold_list.Items[i].FindControl("lblTimerMinutes")));lblTimerMinutes.Text=CountdownSpan.Minutes>=10?CountdownSpan.Minutes.ToString():"0"+CountdownSpan.Minutes.ToString();LabellblTimerSeconds=((Label)(DataList_limited_sold_list.Items[i].FindControl("lblTimerSeconds")));lblTimerSeconds.Text=CountdownSpan.Seconds>=10?CountdownSpan.Seconds.ToString():"0"+CountdownSpan.Seconds.ToString();}}}}
解决方案
解决方案二:
页面刷新当然会跳到最上面,建议用javascript来处理
解决方案三:
用jquery写吧很方便,别用VS集成的ajax很不爽而且还有点坑爹。。不会写的话找个差不多的例子变通。
解决方案四:
或者你可以用框架嵌套你上面的代码就不会有问题。