【发布时间】: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 键后一切正常时,事件顺序为:
- Gridview 行更新
- Keydown/SaveButton 点击
- Gridview 行更新
我不明白是什么触发了事件 3,即第二个 gridview 行更新事件,尽管它不会对任何事情造成任何伤害,因为它是在将文本保存到数据库之后。但是当按下 Tab 键不起作用(文本未保存)时,不会触发第二个 gridview 行更新事件;只有第一行更新事件被触发,文本框更改丢失,恢复为原始文本。
我是 asp.net 的新手,希望有人能对这个问题有所了解。
【问题讨论】:
标签: c# javascript asp.net gridview