测试下看是不是捕捉到了27消息。
js.Append("alert(event.keyCode)");
如果这样都不行,说明没有捕捉到消息,
换成onkeypress,onkeyup试下。
如果还是不行,可以换成onblur试下。

解决方案 »

  1.   

    To yfqvip: 
       能捕捉到的,按下esc后弹出27。
        有一个奇怪的现象,我在编辑状态下修改一些资料,然后按下esc的时候那些资料会复原,当然还是在编辑状态下。
        举例:我修改一个单元格,注意,所有的动作都在编辑状态下,并没有更新,原本为"abc",我改成"abc123",我按下esc后,此单元格又复原成"abc"
        我想会不会gridview自身带esc事件?
      

  2.   

    捕捉一下看看能不能捕捉到27 如果不能  换成onkeypress试试
      

  3.   

    这样说明编辑状态下已经对esc消息处理了,看下是不是失去了焦点。
    用js.Append("alert("+row.RowIndex.ToString()+")"); 看下是不是正确的行,如果失去了焦点,这个索引是不正确的。
      

  4.   

    To yfqvip: 
       也能捕捉到的,弹出的分别为 27 和 准确的行数。
       请注意这一点,if(event.keyCode == 27||event.keyCode == 13)其它的键是能触发Cancel事件的,唯独27不能。To All:
        我愿意在这个问题加大砝码,谁解决了我会额外开贴送200分,一共300分求解。
      

  5.   

    js.Append("if(event.keyCode == 27||event.keyCode == 13){ __doPostBack('GridView1','Cancel$" + row.RowIndex + "');}");
    可能是你的__doPostBack不响应27消息?这样呢?
    js.Append("if(event.keyCode == 27||event.keyCode == 13){ document.getElementById('Cancel的id').click();}");Cancel的id是自动生成的,通过查看运行后的源文件可以找到命名规律。
      

  6.   

    To yfqvip:
        在你的提醒下,我搜了一下doPostBack keycode=27的相关问题。
        网上这句话提醒了我,
        
        __doPostBack('Button2','');
        return false;<!--很重要,不然会选择Button1进行提交 -->
        
        我并不明白为什么这么写,但这句确实和我刚刚说的不谋而合
        “有一个奇怪的现象,我在编辑状态下修改一些资料,然后按下esc的时候那些资料会复原,当然还是在编辑状态下。 
        举例:我修改一个单元格,注意,所有的动作都在编辑状态下,并没有更新,原本为"abc",我改成"abc123",我按下esc后,此单元格又复原成"abc" 
        我想会不会gridview自身带esc事件?”
         我在加了return false;后问题解决了,如果yfqvip有时间,请解释一下。     再次感谢yfqvip朋友,结贴and另开贴送分,Thank you very much!