2013-10-28 53 views
0

我用下面的代碼來設置背景色行的基礎上,改變了值,但它沒有工作,該行的顏色沒有改變:SlickGrid組行回到事件顏色onCellChange

 MyGrid.onCellChange.subscribe(function (e, args) 
     { 
      var data = Grid.getData(); 

      if(data[args.row].IsDeleted == true) 
      { 
       args.row.cssClasses += 'MyBlueColor'; //Set Css Class 
      } 
     } 

     <style type="text/css"> 
     .MyBlueColor 
     { 
      background-color: blue; 
     } 
     </style> 
+1

檢查它如何呈現。在你的CSS分配中沒有空格,它是否將該名稱與另一個類相結合?在單元格中是否存在更多本地化的背景顏色設置,或許您需要像'.MyBlueColor .slick-cell {}'這樣的css規則? – Malk

回答

0

args.row是行索引,而不是該行本身

check out what is passed as the event args when onCellChange is triggered

要更改基於數據項的行的CssClass,你將需要實現自定義getItemMetadata函數返回自定義元數據爲該行。

function getItemMetadata(i) { 
    var item = rows[i]; 
    if (item === undefined) { 
     return null; 
    } 
    if (item.IsDeleted) { 
     return { 
      cssClasses: 'MyBlueColor' 
     }; 
    } 

    return null; 
} 
:看看這是如何 slick.groupitemmetadataprovider.js

實現,從而爲破解只是爲了確保一切正常,你可以用這看起來像自己的自定義函數替換slick.dataview.jsgetItemMetadata功能

這顯然會破壞原始列定義,但一旦找出getRowMetadata函數的工作原理,您應該能夠創建類似於slick.groupitemmetadataprovider.js的自己的元數據提供程序,甚至可以爲每列返回自定義元數據!