2013-07-25 2 views
0

У меня есть раллигрид, который настроен на отображение двух моделей: 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 
    } 
}, 

[EDIT]

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-разделов и установки их стиля/цвета в зависимости от типа - PortfolioItem/Feature или PortfolioItem/Rollup? Вы знаете, как использовать средства визуализации? –

+0

Да, но тогда мне придется делать это на каждом столбце, потому что мне нужен цвет фона в строке ... или, может быть, я могу отредактировать его для строки только один раз? Я дам этот снимок –

+0

Пробовал это: 'App.grid.getView(). AddRowCls (строка, 'colorCodeGrid');' где 'row' является 4-м параметром для функции рендеринга, которая представляет индекс строки. –

ответ

0

Ваш подход выше с viewConfig должен работать - я собираюсь подать на него дефект. Основная причина заключается в том, что Rally.ui.grid.GridView отбрасывает функцию getRowClass в своем конструкторе (для целей внутреннего тестирования браузера - ugghh), а не проверяет, был ли один из них включен и вызван.

Вы можете увидеть его источник для конструкторы здесь: https://developer.help.rallydev.com/apps/2.0rc1/doc/source/GridView.html#Rally-ui-grid-GridView

Вы должны быть в состоянии работать вокруг него, просто повторно переопределения функции до того, как вид визуализации.

[EDIT от Аскер] Добавлено следующее к сетке, и она работала:

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:

я просто исправил в ночной сборки, так что это больше не должны быть проблемой в публичных сборках sdk, начиная со следующего публичного релиза после 2.0rc2.

+0

очень близко! Я пробовал аналогичный подход с слушателями - я отредактировал ваш, чтобы он работал (поместите слушателя в сетку, а не в viewConfig). Спасибо! –

+0

Это работает для меня, но на viewConfig, поскольку у Кайла первоначально было это ... но когда вы это делаете, вам нужно установить cmp.getRowClass, а не cmp.view.getRowClass – kimon

Смежные вопросы