当我在GridView上使用内联编辑并开始编辑一行时,当我在任何文本编辑器上按Enter时,不是更新行,而是取消它,关闭更新并返回。
如何防止这种情况,当我按Enter键使用jQuery在线上提交更新时。
<asp:GridView ID="gvLista" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" >
<Columns>
<asp:CommandField ShowDeleteButton="true" ShowEditButton="true" >
<-- rest of BoundField with editors or other data -->
<asp:BoundField DataField="Name" />
</asp:CommandField>
</Columns>
</asp:GridView>
答案 0 :(得分:0)
如果我们不使用UpdatePanel,那么我们将捕获GridView上的编辑器,然后按回车键,我们在同一行找到更新按钮并提交它:
jQuery(document).ready(function() {
// capture the open editors inside the GridView (if any)
jQuery('#<%= gvLista.ClientID %> :input[type=text]').keydown(function (e)
{
// on keydown if is press the enter
if (e.keyCode == 13)
{
// not let him submit the form on any other button
e.preventDefault();
// but find on the same line, the Update Button, and submit that one
jQuery(this).parents("tr").find("input[value=Update]").click();
}
});
});
如果我们使用UpdatePanel的想法是相同的,但每次UpdatePanel更新其内容时,我们必须使用UpdatePanel函数初始化它。
相关问题和链接:
Capturing the Enter key when editing a GridView textbox
Handling the Enter key pressed in a GridView's row edit mode