2013-02-22 111 views
5

我使用Kendo UI Grid進行彈出編輯。默認情況下,當用戶在彈出編輯器中編輯一個字段並點擊回車鍵時,數據將呈現給網格(在彈出編輯器後面),但彈出窗口保持可見狀態,直到點擊「更新'按鈕。Kendo Grid:觸發器更新點擊回車鍵彈出編輯

我試圖改變該功能,以便當用戶在編輯字段時點擊輸入時,它會觸發'更新'按鈕單擊 - 這意味着它會將數據呈現給網格,激發保存事件並關閉彈出編輯器。

我當前的嘗試將關閉彈出窗口編輯器,但不會觸發保存事件並撤消對所選行的任何字段所做的更改。幾乎就像取消按鈕被觸發了。

options.edit = function (e) { 
    $('.k-edit-field .k-input').on('keypress', function (e) { 
     utils.onEnter(e, function() { 
      $('.k-grid-update').trigger('click'); 
     }); 
    }); 
}; 

我怎樣才能觸發「更新」按鈕的點擊,或至少模仿它做什麼?

回答

4

我沒能找到一個方法劍道引起改變的字段變髒,然後進行保存,所以我用一個小的jQuery,只是將重點轉移到更新按鈕然後觸發點擊事件。按預期工作...

options.edit = function (e) { 
    $('.k-edit-field .k-input').on('keypress', function (e) { 
     utils.onEnter(e, function() { 
      $('.k-grid-update').focus().trigger('click'); 

     }); 
    }); 
}; 
+0

這也適用於我,但在1秒內,我有一個js錯誤: 無法使用'in'運算符來搜索未定義的'getSelection'。 Stacktrace不會說任何有用的東西,內部的東西。 如果我點擊鼠標更新btn - 一切正常.. – EvgeniyK 2013-11-01 13:21:01

+0

@ bflemi3感謝您的問題和答案,但什麼是選項?你在哪裏寫這個函數?你能多解釋一下嗎? – MustafaP 2014-04-17 09:03:01

+0

@MustafaP我相信他通過[setOptions](http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#events-edit)[http:// docs .telerik.com /劍術-UI/API/JavaScript的/ UI /格#方法-setOptions)。 – Hastarin 2015-03-05 23:27:45

2

我會建議使用saveRow method這將保存當前數據並關閉PopUp編輯器。

如:

$("#grid").data("kendoGrid").saveRow(); 
+1

也許這適用於內聯編輯,但它不適用於彈出編輯。 – bflemi3 2013-02-25 18:39:53

+0

問題是,在模型更新之前,輸入字段必須首先失去焦點。 – 2014-12-05 13:06:26

相關問題