t1.Attributes.Add("onkeydown", "if(event.keyCode==13){document.all.t2.focus();}");
t2.Attributes.Add("onkeydown", "if(event.keyCode==13){document.all.t3.focus();}");
......
t99.Attributes.Add("onkeydown", "if(event.keyCode==13){document.all.t100.focus();}");
---------------------
有100个文件框,要实现上面的按回车聚焦下一个文件框,用循环写代码如下,麻烦看看错在哪?编译已通过,但回车不起作用
            for (int i = 0; i < 100; i++)
            {
                ((System.Web.UI.WebControls.TextBox)(FindControl("t" + (i + 1).ToString()))).Attributes.Add("onkeydown", "if(event.keyCode==13){document.all.((System.Web.UI.WebControls.TextBox)(FindControl('t' + (i + 2).ToString()))).focus();}");
            }

解决方案 »

  1.   

    for (int i = 0; i < 100; i++)
                {
                    ((System.Web.UI.WebControls.TextBox)(FindControl("t" + (i + 1).ToString()))).Attributes.Add("onkeydown", "if(event.keyCode==13){document.all.('t' + (i + 2).ToString()).focus();}");
                }
    try
      

  2.   

    1。
    有100个文件框,
    =======
    这个 NB2。
    应该先测试一个,看看效果3。
    竟然用了两个 FindControl 再加上 100 循环,效率多是问题4。
    "if(event.keyCode==13){document.all.((System.Web.UI.WebControls.TextBox)(FindControl('t' + (i + 2).ToString()))).focus();}"
    ============
    这段代码黑有创意
    5。
    ((System.Web.UI.WebControls.TextBox)(FindControl("t" + (i + 1).ToString()))).Attributes.Add("onkeydown", "if(event.keyCode==13){document.all.((System.Web.UI.WebControls.TextBox)(FindControl('t' + (i + 2).ToString()))).focus();}");》》》TextBox txt = FindControl("t" + (i + 1).ToString()) as TextBox;
    if(txt == null) continue;
    txt.Attributes.Add("onkeydown", String.Format("if(event.keyCode==13) document.getElementById('{0}').focus();", txt.ClientID);
      

  3.   

    for (int i = 0; i < 100; i++)
                {
                    ((System.Web.UI.WebControls.TextBox)(FindControl("t" + (i + 1).ToString()))).Attributes.Add("onkeydown", "if(event.keyCode==13){document.all("'t'" + (i + 2).ToString()+"').focus();}");
                }
      

  4.   

    经测试,linekery()的代码不起作用,icefisher() 的代码编译错误,谢谢2位
      

  5.   

    sorry,更正一下,
    for (int i = 0; i < 100; i++)
                {
                    ((System.Web.UI.WebControls.TextBox)(FindControl("t" + (i + 1).ToString()))).Attributes.Add("onkeydown", "if(event.keyCode==13){document.all('t" + (i + 2).ToString()+"').focus();}");
                }
      

  6.   

    for (int i = 0; i < 100; i++)
                {
                    ((System.Web.UI.WebControls.TextBox)(FindControl("t" + (i + 1).ToString()))).Attributes.Add("onkeydown", "if(event.keyCode==13){document.all.('ctl00_t' + (i + 2).ToString()).focus();}");
                }
    try
      

  7.   

    经测试,Jinglecat(晓风残月)的代码也不起作用,谢谢!
      

  8.   

    icefisher()的代码通过了,而且运行效率也很高,问题终于解决了,非常感谢!同时也感谢上面的几位朋友的热心参与! for (int i = 0; i < 100; i++)
                {
                    ((System.Web.UI.WebControls.TextBox)(FindControl("t" + (i + 1).ToString()))).Attributes.Add("onkeydown", "if(event.keyCode==13){document.all('t" + (i + 2).ToString()+"').focus();}");
                }
      

  9.   

    System.Web.UI.WebControls.TextBox ts[]=new System.Web.UI.WebControls.TextBox[100];
    for (int i = 0; i < 100; i++)
      ts[i]=(System.Web.UI.WebControls.TextBox)FindControl("t" + (i+1).ToString());
    for (int i = 0; i < 99; i++)
      ts[i].Attributes.Add("onkeydown", "if(event.keyCode==13){document.all."+
          ts[i+1].ClientID+".focus();}");
      

  10.   

    写成  document.all('t" + (i + 2).ToString()+"').focus();} 其实是错误的编程方法。
      

  11.   

    有100个textbox不如放在静态页里
    <form method="post" action="">
    <script>
    for(i=1;i<=100;i++)
    document.write("<input id=t"+i+" type=text onclick='t"+(i+1)+".focus();'>");
    </script>
    </form>