2011-06-16 89 views
2

好吧,讓我解釋一下我的情況更清楚:改型動態風格SlickGrid細胞後排序

當細胞被編輯,就變成「髒」,我通過添加CSS類到單元格樣式它以某種方式通過JavaScript。然後,如果用戶對網格進行排序,樣式會丟失(我相信因爲所有的行都被重新創建),我需要一種方法將樣式恢復到Sort之後的適當單元格/行。

我試圖做的是在data []中添加一個條目,稱爲'status',onCellChange I循環數據[]並將args.item.Id與數據[]中的相應條目匹配。

grid.onCellChange.subscribe(function (e, args) { 
    var done = false; 
    for (var i = 0; i < data.length && !done; i++) { 
     if (data[i].id == args.item.id) { 
      data[i].status = "dirty"; 
      done = true; 
     } 
    } 
} 

但是,onSort我不知道如何匹配排序的行到數據數組。 (因爲我沒有args.item)我試圖做選擇器語句: $(「。slick-row」) 重新設置正確的單元格,但我沒有辦法將行與它們在數據中的條目關聯起來[ ]。

回答

3

1)沒有必要搜索onCellChange處理程序中的項目 - 它可在「args.item」處獲得。

2)排序「data」數組不會消除對#1中項目的更改。

3)你提到動態樣式單元格。我看不到任何代碼。如果您的自定義格式化程序是查看「item.status」的代碼片段,並且如果它很髒,則以不同的方式呈現它,那麼您不必額外做任何事情。排序數據並告訴網格重新渲染將保留「髒」單元格樣式。

+0

我現在完全明白了!它工作得很好,謝謝! – Kevin 2011-06-17 15:21:47