我有一个像这样定义的GridView:
<asp:GridView ID="myGridView" ruant="server">
<asp:BoundField DataField="myField" />
<asp:CommandField ShowDeleteButton="true" ShowEditButton="true" />
</asp:GridView>
使用“编辑”按钮将行置于编辑模式后,如何捕获Enter键并触发行上的结果更新?现在,如果我按Enter键,页面重新加载,输入到TextBox的内容将丢失,并且该行保持编辑模式。我知道如何在表单上disable the enter key entirely(当前的解决方法),但我想让它触发更新命令。
答案 0 :(得分:3)
好吧,使用您链接的问题中的知识,很简单:
string js = "if (event.keyCode == 13) this.form.submit();"
myGridView.Attributes.Add("onkeydown", js);
正如我们在评论中发现的那样,这引入了一个小问题。 GridView_RowUpdating
服务器事件不再触发,但问题作者依赖它。
简而言之 - 服务器事件模型依赖于要设置的表单域__EVENTTARGET
。只需调用form.submit()
即可发送此表单字段。解决方案是使用JavaScript“点击”相关按钮。
string js = "if ((event.which && event.which == 13) || "
+ "(event.keyCode && event.keyCode == 13)) "
+ "{document.myForm.Update.click();return false;} "
+ "else return true;";
myGridView.Attributes.Add("onkeydown", js);
请参阅AllAsp.net上的"Using the enter key to submit a form",其中详细介绍了该问题。
答案 1 :(得分:0)
将页面上按钮的“UseSubmitBehavior”属性设置为“False”(默认为True) 在几条评论中解决了提交问题。