繁体   English   中英

在GridView中并非总是会触发Asp.net Keydown事件

[英]Asp.net Keydown Event not always fired within GridView

在griview中(使用IE),可单击一列单元格(通过gridview行命令事件),一旦单击单元格,它将显示一个隐藏的文本框(在单击该单元格之前,visible = false); 用户可以在文本框中输入文本,并允许保存对文本框所做的更改,并告知用户按Tab键。 通过使用Javascript通过在keydown事件中检查键码来完成保存,它只检查何时keycode = 9 (Tab key) __doPostback('OnClick','SaveButton'); SaveButton onclick事件SaveButton中,只需调用存储过程即可将新文本更改保存到数据库中。

我遇到的问题是虽然大多数情况下都不会触发keydown事件。 当它可以工作和什么时候不工作时,情况似乎没有什么区别,所以对我来说,这有点随机,我必须强调它在90%的时间内都可以工作。

值得一提的是,当用户单击单元格以编辑文本框时,首先会引发gridview行更新事件,因为我不仅需要为此列文本更改而且还需要为其他列数据更新启用gridview行更新事件。

当用户按下Tab键后一切都正常运行时,事件序列为:

  1. Gridview行更新
  2. Keydown / SaveButton单击
  3. Gridview行更新

我不明白是什么触发了事件3,即第二个gridview行更新事件,尽管它对文本保存到数据库之后没有任何危害,但它不会对任何事件造成任何损害。 但是,当按Tab键不起作用(未保存文本)时,不会触发第二个gridview行更新事件; 仅会触发第一行更新事件,并且丢失文本框的更改并恢复为原始文本。

我是asp.net的新手,希望有人可以对这个问题有所了解。

我发现了为什么第二次触发GridView行更新事件,这是因为可编辑文本框的AutoPost设置为True。

愚蠢的我...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM