前台js 
var tt = 3;
    function t() {
      if (tt < 1) {
      window.location = "Login.aspx";
      return;
      };
     regMsg.innerText="注册成功,页面将在 " + tt + " 后转向登录页面";
      tt--;
      window.setTimeout("t()",1000);
      }
后台
protected void btnSubmit_Click(object sender, EventArgs e)
        {
            Users user = new Users();
            user.UserId = txtregname.Text;
            user.Name = txtrealname.Text;
            user.Gender =int.Parse( ddlgender.SelectedValue);
            user.Email = txtregemail.Text;
            user.QQ = txtregqq.Text;            string source = txtregpwd.Text;
            string hash = getMd5Hash(source);
            user.Pwd = hash;
            
            if (new BLogin().BRegisterUser(user) == 1)
            {
               
                Page.ClientScript.RegisterStartupScript(Page.GetType(), "s", "t()", true);
                
            }
            else
            {
                Response.Write("<scirpt>alert('注册失败');</scirpt>");
                return;
            }
        }

解决方案 »

  1.   

    我拿你的代码执行了一下,没问题的。
    你调试一下是否后台真的进入
    if (new BLogin().BRegisterUser(user) == 1)
      {
        
      Page.ClientScript.RegisterStartupScript(Page.GetType(), "s", "t()", true);
        
      }
    了,如果进入这个条件语句了,那是不会有问题的,除非你regMsg没有定义
      

  2.   

    楼主 我单独测试了一下你的js代码 是没有问题的~·
    你看看asp是否调用到了js,t的这个方法,alert()这样测试一下,看到哪出的问题~·<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head><body>
    <div id="regMsg"></div>
    <script>
          var tt = 3;
      var regMsg = document.getElementById('regMsg');
      function t() {
      if (tt < 1) {
      window.location = "Login.aspx";
      return;
      };
      regMsg.innerText="注册成功,页面将在 " + tt + " 后转向登录页面";
      tt--;
      window.setTimeout("t()",1000);
      }
      t();
        </script>
    </body>
    </html>
    这个是我做测试用的页面,你看下~·
      

  3.   

    regMsg.innerText
    只有IE支持,改成
    regMsg.innerHTML
      

  4.   

    ScriptManager.RegisterStartupScript(this, typeof(Page), "", "t();", true);
    take a try
      

  5.   

    应该可以啊 
    完整的代码<%@ Page Language="C#" AutoEventWireup="True" EnableViewState="false" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">  protected void btnSubmit_Click(object sender, EventArgs e)
      {
        Page.ClientScript.RegisterStartupScript(Page.GetType(), "s", "t()", true);
      }
    </script>
    <html>
    <head>
      <title></title>
      <script type="text/javascript">
        var tt = 3;
        function t() {
          regMsg = document.getElementById('<%=Label1.ClientID %>')
          if (tt < 1) {
            window.location = "Login.aspx";
            return;
          };
          regMsg.innerHTML = "注册成功,页面将在 " + tt + " 后转向登录页面";
          tt--;
          window.setTimeout("t()", 1000);
        }  </script>
    </head>
    <body>
      <form id="form1" runat="server">
      <asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Button" />
      <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
      </form>
    </body>
    </html>是不是id冲突了。
      

  6.   

    button事件执行完后不是要相应回发吗,那注册的js还来得及执行吗,现在都没有停顿的那3秒,而是直接到了login.aspx
      

  7.   

    目前情况是,button事件执行完后页面立即刷新,然后过了3秒,出现跳转,没有id冲突什么的,
      

  8.   

    protected void btnSubmit_Click(object sender, EventArgs e)
      {
      Users user = new Users();
      user.UserId = txtregname.Text;
      user.Name = txtrealname.Text;
      user.Gender =int.Parse( ddlgender.SelectedValue);
      user.Email = txtregemail.Text;
      user.QQ = txtregqq.Text;  string source = txtregpwd.Text;
      string hash = getMd5Hash(source);
      user.Pwd = hash;
        
      if (new BLogin().BRegisterUser(user) == 1)
      {
        
      Page.ClientScript.RegisterStartupScript(Page.GetType(), "s", "t()", true);
        
      }
      else
      {
      Response.Write("<scirpt>alert('注册失败');</scirpt>");
      return;
      }
      }我是验证后才提示的,现在是跳转了,但现在是button事件执行完后刷新页面,然后才跳转,我给本页的赋值都没显示就被刷新了,就是服务器控件事件执行完不都有回发嘛,一闪我的赋值都没了,然后才经过3秒跳转