2013-07-25 55 views
0

我有一個rallygrid,配置爲顯示兩個模型:PortfolioItem/Feature和PortfolioItem/Rollup。我想在網格中對它們進行着色來區分它們。我不敢保證他們會在網格中交替出現,或者類似的東西。我只是想將細微的顏色應用於彙總,以便直觀地區分它們。基於模型的拉力網格顏色行

任何人都可以想到一個簡單的方法來實現這一目標嗎?

我曾嘗試:

viewConfig: { 
    getRowClass: function(record, index, rowParams, store) { 
     console.log('record',record); // nothing logged in console 
     console.log('index',index); 
     return 'colorCodeGrid'; // class never added 
    } 
}, 

[編輯]

viewConfig: { 
    stripeRows: false, // rows are no longer striped 
    getRowClass: function(record, index, rowParams, store) { 
     console.log('record',record); // still nothing logged in console 
     console.log('index',index); 
     return 'colorCodeGrid'; // class never added 
    } 
}, 

這是奇怪,我的viewConfig正確確實未帶行,但getRowClass不會被調用。我認爲也許只是viewConfig作爲一個整體沒有被用在拉力賽的情況下。

+0

在columnCfgs函數中,您可以使用渲染器添加HTML div並根據類型設置樣式/顏色 - PortfolioItem/Feature vs. PortfolioItem/Rollup?你知道如何使用渲染器嗎? –

+0

是的,但是接下來我將不得不在每一列上都這樣做,因爲我想在該行上添加背景顏色。或者我可以對該行進行一次編輯?我會給出一個 –

+0

試過:App.grid.getView()。addRowCls(row,'colorCodeGrid');'其中'row'是渲染器函數的第4個參數,它表示行的索引。 –

回答

0

你的方法與viewConfig上面應該工作 - 我要在這個文件上的缺陷。根本原因是Rally.ui.grid.GridView在其構造函數中吹掉了getRowClass函數(用於內部瀏覽器測試目的),而不是檢查是否提供了一個並調用它。

你可以看到這裏的構造來源:https://developer.help.rallydev.com/apps/2.0rc1/doc/source/GridView.html#Rally-ui-grid-GridView

您應該能夠通過只是重新改寫功能視圖呈現前解決它。

[編輯由提問者] 添加以下到網格,和它的工作:

listeners: { 
    beforerender: function(cmp) { 
     console.log('beforerender'); 
     console.log('view',cmp); 
     cmp.view.getRowClass = function(record, index, rowParams, store) { 
      console.log('record',record); // still nothing logged in console 
      console.log('index',index); 
      return 'colorCodeGrid'; // class never added 
     }; 
    } 
}, 

UPDATE

我只是在每晚構建固定這一點,所以這應該不再在2.0rc2之後的下一個公開版本開始時,成爲公共sdk版本中的一個問題。

+0

非常接近!我正在嘗試類似的方法與聽衆 - 我編輯你的工作(把聽衆放在網格上,而不是viewConfig)。謝謝! –

+0

這適用於我,但在viewConfig作爲凱爾原來它...但是當你這樣做,你需要設置cmp.getRowClass,而不是cmp.view.getRowClass – kimon