2013-08-16 46 views
0

當我在GridView上使用內聯編輯並開始編輯一行時,當我在任何文本編輯器上按Enter鍵時,不是更新行,而是取消它,關閉更新並返回。捕獲gridview內嵌編輯的輸入並更新

我該如何防止這種情況發生,以及何時按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

如果我們不使用的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