2015-05-18 118 views
1

我有一列網格,當用戶選擇時,它用於顯示各種文本框中的信息,複選框嵌入在右側的面板中。我已經在網格的行級執行了刪除功能。現在我希望這兩件事中的任何一件發生。在extjs中刪除行後重新加載網格選擇

1)默認選擇是這樣的,第一行默認是在刪除任何行後選中的。

2)清除右側面板中各個組件的信息。

目前發生的情況是,與刪除的行相對應的信息在刪除後保留,因爲網格中沒有任何內容被選中,因此上一個選定的選項用於顯示右側的信息。

+0

使用store'remove'事件:http://docs.sencha.com/extjs/4.1.1/#!/api/Ext.data.AbstractStore-event-remove –

+0

我已經使用remove來刪除來自網格的條目。在這一步之後,我需要建議的功能。 –

回答

3

由於從網格中刪除記錄意味着取消選中它,您只需要監聽網格中選擇的更改並在沒有選擇時執行所需的行爲。

我建議selectionchange事件,你可以通過檢查新的選擇狀態既包括選擇和取消:

grid.on({ 
    'selectionchange': function(sm, selectedRecords) { 
     if (selectedRecords.length === 0) { 
      // no selection -> clear fields or select the first row 
     } else { 
      // selection exists -> load data into fields 
     } 
    } 
}); 

(假設你使用single selection,即一個或沒有行可以選中)

+0

非常感謝馬特的幫助。我當前使用cellclick作爲此網格的偵聽器,因此selectionchange和cellclick都不起作用。雖然selectionchange確實有助於解決我的問題。你能告訴我如何找出與這個監聽器的選定單元格的值,因爲如果我要使用這個監聽器,我需要相應地編輯我的當前代碼?我只有一列,即'名稱',其中包含各種名稱的多行。 –

+0

所以我假設你正在使用細胞選擇模型?嘗試使用['sm.getPosition()'](http://docs.sencha.com/extjs/5.1/5.1.1-apidocs/#!/api/Ext.selection.CellModel-method-getPosition)。我不知道你的ExtJS版本,如果是5.x.在4.x中,該方法的名稱是['getCurrentPosition'](http://docs.sencha.com/extjs/4.2.3/#!/api/Ext.selection.CellModel-method-getCurrentPosition) – matt

+0

我正在使用ExtJS 4.通過selectedRecords [0]我得到了第一行,並且選擇了記錄[0] .get(「name」),我得到了單元格的值。無論如何,謝謝。檢查您的文章作爲正式答案:) –