在一个griview(使用IE)中,一列中的单元格是可点击的(通过gridview行命令事件),单击一个单元格后,它会显示一个隐藏的文本框(在单击单元格之前,visible = false);用户可以在文本框中输入文本,并允许保存对文本框所做的更改,用户被告知按Tab键。
保存是通过检查keydown事件中的keycode使用Javascript来完成的,它只是检查代码隐藏keycode = 9 (Tab key) __doPostback('OnClick','SaveButton');
onclick事件中的SaveButton
只是调用存储过程将新文本更改保存到数据库中。
我遇到的问题是keydown事件并不总是被解雇,尽管它大部分时间都有效。它的工作情况似乎没有区别,当它没有时,所以对我来说它有点随机,我不得不强调它在90%的时间都有效。
值得一提的是,当用户单击单元格来编辑文本框时,首先会触发gridview行更新事件,因为我需要启用gridview行更新事件,不仅要对此列文本进行更改,还要对其他列进行数据更新。
当一切都有效时'用户按Tab键后,事件序列为:
我不明白是什么触发了事件3,即第二次gridview行更新事件,尽管它不会对文本保存到数据库后的任何内容造成任何伤害。但是当按Tab键不起作用(文本未保存)时,不会触发第二个gridview行更新事件;只触发第1行更新事件,文本框更改丢失,恢复原始文本。
我是asp.net的新手,希望有人能对这个问题有所了解。
答案 0 :(得分:0)
我发现为什么GridView行更新事件第二次被触发,因为可编辑文本框的AutoPost被设置为True。
傻傻的我......