有一个aspx页面,布局大致如下:
TextBox1  
TextBox2ImageButton1 Button2我想实现如下功能:
输入TextBox1和TextBox2后,按回车键,程序就触发Button2下面的事件。可是现在输入TextBox1和TextBox2后,程序触发的是ImageButton1的事件假如两个Button换一下位置,把Button2在前ImageButton1在后就可以了,但问题是这两个Button的位置是不能换的有没有办法解决?小弟不胜感激!!!!!!!!!!!!!

解决方案 »

  1.   

    use javascript, something like this for IE6<script language="javascript">
    function document.onkeydown()
    {
       var t1 = document.getElementById('<%=TextBox1.ClientID%>');
       var t2 = document.getElementById('<%=TextBox2.ClientID%>');   var b = document.getElementById('<%=ImageButton2.ClientID%>');   if (event.keyCode == 13 && (event.srcElement == t1 || event.srcElement == t2))
       {
    window.event.cancelEvent = true;
    window.event.returnValue = false;
    b.click();
       }
    }
    </script>
      

  2.   

    如果将tabindex属性设置一下,不知可否?
      

  3.   

    1、用js脚本设焦点
    2、不知道用控件的自带的tabindex属性不知可否
      

  4.   

    tabindex应该好用。不然就用js在TextBox2失去焦点时让Button2获得焦点
      

  5.   

    思归的方法的确可以,
    但有一个问题,我用的是VS2005,此页面放在了MasterPage里面,而js只能写在MasterPage页面,这样的话就提示找不到TextBox1MasterPage页面如何访问子页面的控件??
      

  6.   

    why "而js只能写在MasterPage页面"?try to use the javascript in your page instead of masterpage
      

  7.   

    saucer(思归)写在page里报错,应该是只能写在Masterpage里面
      

  8.   

    put the javascript code inside the <asp:Content>...</asp:Content>if you insist, you could do something like the following, but I think it is badmaster:<head>
    <script language="javascript">
    var t1ID, t2ID, bID;
    function document.onkeydown()
    {
       var t1 = document.getElementById(t1ID);
       var t2 = document.getElementById(t2ID);   var b = document.getElementById(bID);
       if (event.keyCode == 13 && (event.srcElement == t1 || event.srcElement == t2))
       {
    window.event.cancelEvent = true;
    window.event.returnValue = false;
    b.click();
       }
    }
    </script>
    </head>in your page's Page_Loadvoid Page_Load(object sender,EventArgs e)
    {
    ClientScript.RegisterStartupScript(this.GetType(),"SetupVar",
    String.Format("t1ID='{0}';t2ID='{1}';bID='{2}';", TextBox1.ClientID, TextBox2.ClientID, ImageButton2.ClientID),
    true);
    }
      

  9.   

    use javascript, something like this for IE6<script language="javascript">
    function document.onkeydown()
    {
       var t1 = document.getElementById('<%=TextBox1.ClientID%>');
       var t2 = document.getElementById('<%=TextBox2.ClientID%>');   var b = document.getElementById('<%=ImageButton2.ClientID%>');   if (event.keyCode == 13 && (event.srcElement == t1 || event.srcElement == t2))
       {
    window.event.cancelEvent = true;
    window.event.returnValue = false;
    b.click();
       }
    }
    </script>你好,再打扰一下。
    你这个方法不错,可以实现功能。
    但只能在windonws的IE或MyIE中正常,在FireFox中无法实现,报错如下:
    missing (before formal parameters
    function document.onkeydown()
    我想应该是FireFox不支持,有没有好办法解决???
      

  10.   

    使用
    NIckLee.Web.UI.Focus控件,就可以了,嘿嘿
      

  11.   

    啊。。现在才知道有ClientID这个东西。。
    设置 Page.Form.DefaultButton 试验一下吧