使用C#(无Javascript)我想一个接一个地显示数字10到1。每个号码应显示10秒钟。
任何人都可以提供帮助。
此致 的Vivek
答案 0 :(得分:4)
你可以进行10秒的元刷新,每10秒刷新一次。您可以将数字放在查询字符串中并将其打印到页面中。
答案 1 :(得分:2)
看一下Timer
<asp:ScriptManager runat="server" id="ScriptManager1" />
<asp:Timer ID="Timer1" runat="server" Interval="10000"
OnTick="Timer1_Tick">
</asp:Timer>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1"
EventName="Tick" />
</Triggers>
<ContentTemplate>
<asp:Label ID="Label1" runat="server" ></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
背后的代码
int counter=1;
protected void Timer1_Tick(object sender, EventArgs e)
{
Label1.Text =1++;
}
了解更多信息: http://msdn.microsoft.com/en-us/library/bb398865.aspx
答案 2 :(得分:2)
如果没有javascript(更新面板等),您可以使用线程睡眠延迟重新加载页面:
string currentValue = Convert.ToString(Request.QueryString["val"]);
label.Text = currentValue;
if (Convert.ToInt32(currentValue) != 0)
{
currentValue = Convert.ToString(Convert.ToInt32(currentValue) - 1);
Thread.Sleep(10000);
Response.Redirect("Default.aspx?val=" + currentValue);
}
通过使用查询字符串加载页面来解决问题:Default.aspx?val=10
答案 3 :(得分:0)
下面:
<强> test.aspx.cs 强>
protected void Page_Load(object sender, EventArgs e)
{
string t = Request.Params["t"] ?? "10";
string html = "<html><head><meta http-equiv=\"refresh\" content=\"10; url=http://localhost:3687/website/test.aspx?t=NEXT\"><head><body>NOW</body></html>";
html = html.Replace("NOW", t);
int next = (int.Parse(t) - 1);
if (next == 0) next = 1;
html = html.Replace("NEXT", next+"");
Response.ContentType = "text/html";
Response.Write(html);
Response.End();
}
<强> Test.aspx文件强>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>
正如@Mark Byers建议的那样,你可以使用元刷新......它的确有效。只需将http://localhost:3687/website/test.aspx
var中的html
更改为ASPX页面的网址即可。
因此,您只需要打开http://localhost:3687/website/test.aspx
,这将生成包含下一个元刷新网址且其参数t
设置为下一个较低值的页面,依此类推,直至达到1。