2014-03-25 41 views
0

我有一個包含兩個網格的面板,兩個網格都可以使用單元格編輯插件進行編輯。在網格中,用戶可以使用Tab鍵在可編輯字段之間移動。然而,我似乎無法找到正確的方法來獲取Tab鍵,以允許用戶從第一個網格中的最後一個可編輯單元格移動到第二個可編輯單元格中(兩個網格之間沒有組件)。用戶剛卡在第一個網格的最後一個可編輯字段中。ExtJS使用Tab在兩個網格之間導航

我試着用的FocusManager,但本作的鍵盤導航複雜得多,而不是更少,無需使用箭頭鍵來進入和離開每個表單元素和網格。

我將此代碼添加到父面板:

var nav = new Ext.util.KeyNav(Ext.getDoc(), { 
tab: function(e) { 
console.debug('TAB HIT!', arguments); 
}, 
scope: this 
}); 
nav.enable(); 

只是爲了看看檢測什麼標籤,但被點擊tab鍵時,它纔會被激活,並在父面板中的表單元素本身具有焦點。

我想有我需要學習,如何我通過焦點從元素到元素的幾個要素,以及如何檢測第一和最後一個元素在網格?或者有什麼方法可以將它嵌入到ExtJS中?任何建議或意見,將不勝感激。

+0

試試這個解決方案http://www.lukehorvat.com/blog/excel-grid-plugin-for-ext-js-4/ –

+0

我看了一下那個插件,但它仍然沒有提供我需要的功能。如果我將兩個面板放到頁面中(只是複製JSFiddle中示例中的面板),當我到達第一個面板的最後一個單元格時,我無法從鍵盤選項卡移動到第二個單元格中的第一個單元格面板。 – Wige

回答

0

我會使用新的網格面板cellkeydown event

實現該事件,它檢查密鑰類型的處理程序,以及該小區是否是在網格中的最後一列,然後在相應的行中的其它網格的第一列開始小區編輯。

您可以從該事件傳遞的第7個參數中找出它是否是TAB鍵。

您可以從事件傳遞的第三個參數中找出它是否是網格中的最後一個單元格。

rowIndex是第6個參數 - 使用它可以讓你知道哪個行開始在另一個網格中編輯。

事件處理程序可以被添加到使用on method的方式的組件。

您也可以查找需要調用的API here在啓動單元格編輯功能。

如果你有更多的代碼,也許賞金我也許能得到更具體的,但是這是我會怎麼做它的要點。