【问题标题】:Asp.net Keydown Event not always fired within GridViewAsp.net Keydown 事件并不总是在 GridView 中触发
【发布时间】:2023-03-09 22:36:01
【问题描述】:

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

我遇到的问题是 keydown 事件并不总是被触发,尽管它大部分时间都有效。它的工作情况和不工作的情况似乎没有区别,所以对我来说这有点随机,我必须强调它在 90% 的时间里都有效。

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

当用户按下 Tab 键后一切正常时,事件顺序为:

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

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

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

【问题讨论】:

    标签: c# javascript asp.net gridview


    【解决方案1】:

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

    我真傻……

    【讨论】:

      猜你喜欢
      • 2011-01-01
      • 1970-01-01
      • 2014-05-29
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      相关资源
      最近更新 更多