我在DataGrid里放一个TextBox,在HTML里使用onTextChange="TextBoxChange",.cs里有一个public 
void TextBoxChange();按道理是只有把TextBox的值改了后按Enter键才触发事件,可当我把焦点放在该TextBox上,没有改变它的值,按Enter键居然触发页面一个Button事件,而且始终是那个Button,请高手帮忙!

解决方案 »

  1.   

    TextBox是怎么放的,放到模版里了吗
      

  2.   

    看得不是很明白,但是textbox放到dtagrid中应该使用了模板,那里textboxchange事件应该没用了,应当在datagrid的ItemCommand事件
      

  3.   

    可以用的,因为在.cs里可以用public void TextBoxChange(object sender, System.EventArgs e)调用的,能触发这个事件的
      

  4.   

    我的目的不是讨论TextBoxChange问题,是讨论焦点问题:
    明明焦点在TextBox里,但我按Enter键却触发了其中一个Button事件!!!
      

  5.   

    呵呵,.net中的按钮都是Submit按钮,且放在第一位的是莫认的Submit按钮,当然会触发他的事件了,至于解决的方案有多种,比如Enter->Tab,重写一个按钮类等
      

  6.   

    .net按回车健触发的就是Button的Click()事件,你这做是不可以
      

  7.   

    这个问题我也遇到了。后来只能另放一个Button,然后把宽度设为0,
    使它看不到又能把焦点“抢走”(隐藏的话页面不能获得焦点),
    触发也不会做什么事情!
    不知道有没有更好的解决方法???!!!
      

  8.   

    你可以用JS重写回车事件keypress方法。
    if keypress=23
    ..........
      

  9.   

    办法就是把回车事件转为 Tab 事件
    <body onkeydown="aa()" MS_POSITIONING="GridLayout">
    <script language="javascript">
    function aa()
    {
    var srcType;
    srcType = event.srcElement.type;
    if(event.srcElement.type!=undefined)
    {
    if(srcType=="text")
    {
    if (event.keyCode==13) 
    event.keyCode=9;
    }
    }
    }
    </script>
      

  10.   

    引用:[我的目的不是讨论TextBoxChange问题,是讨论焦点问题:
    明明焦点在TextBox里,但我按Enter键却触发了其中一个Button事件!!!]你焦点放在TEXTBOX不关服务器端的事情,服务器才不管你提交时把焦点放在哪里.
    在一个页面中,按ENTER 默认的就是提交事件,就如 caicaibao(菜菜(包))所说!
    但是不触发按钮事件如果你是想触发TEXTBOXCHANGE事件,首先必须更改TEXTBOX的TEXT属性,然后无论是通过提交按钮还是ENTER提交,都会触发!光是焦点放在那里是不起作用的!还有,如果你想在修改TEXTBOX后就马上触发TEXTBOXCHANGE事件 必须将TEXTBOX控件的AUTOPOSTBACK属性设置成TRUE
      

  11.   

    楼主的意思应该不是触发TextBoxChange的问题,因为无论Enter触发不触发TextBoxChange事件,最后还是会触发Button事件!
      

  12.   

    还有lsqkeke() 的方法好象也不太可行,因为把回车事件转为 Tab 事件后,
    焦点可能会转移到下一的TextBox里,而这不一定是想要的结果!
      

  13.   

    按道理是只有把TextBox的值改了后按Enter键才触发事件
    +++++++++++++++++++++++++++++++++++++++++++++++只要焦点不在TextBox,且值变化以后就会触发。不是一定要按回车的。