Воссоздание элементов HTML из-за виртуальной прокрутки действительно может раздражать.
Лучше всего переопределить функцию прокрутки своей собственной, где вы заново добавите стиль в столбец(s):
$(function () {
$('#grid').w2grid({
name: 'grid',
columns: [
{ field: 'fname', caption: 'First Name', size: '300px' },
{ field: 'lname', caption: 'Last Name', size: '300px' },
{ field: 'dummy1', caption: 'Dummy 1', size: '300px' },
{ field: 'dummy2', caption: 'Dummy 2', size: '300px' },
{ field: 'sdate', caption: 'Dates', size: '300px' }
],
"records": [
{ "recid": 1, "fname": "Joseph", "lname": "Haydn", "sdate": "1732-1809" },
{ "recid": 2, "fname": "Ludwig Van", "lname": "Beethoven", "sdate": "1770-1827" },
{ "recid": 3, "fname": "Wolfgang Amadeus", "lname": "Mozart", "sdate": "1756-1791" },
{ "recid": 4, "fname": "Johann Sebastian", "lname": "Bach", "sdate": "1685-1750" },
],
onRender: function(event){
event.done(setBgColors);
},
});
w2ui.grid.scroll_bak = w2ui.grid.scroll;
w2ui.grid.scroll = function(event){
this.scroll_bak(event);
setTimeout(setBgColors);
};
function setBgColors(){
$("#grid_grid_column_0").addClass("bg_red");
$("#grid_grid_column_4").addClass("bg_blue");
}
});
Fiddle: http://jsfiddle.net/dt3yv2q4/2/
Или вы можете просто отключить виртуальную прокрутку, делая изменения в ваших элементах DOM постоянными:
$(function () {
$('#grid').w2grid({
name: 'grid',
disableCVS: true,
columns: [
{ field: 'fname', caption: 'First Name', size: '300px' },
{ field: 'lname', caption: 'Last Name', size: '300px' },
{ field: 'dummy1', caption: 'Dummy 1', size: '300px' },
{ field: 'dummy2', caption: 'Dummy 2', size: '300px' },
{ field: 'sdate', caption: 'Dates', size: '300px' }
],
"records": [
{ "recid": 1, "fname": "Joseph", "lname": "Haydn", "sdate": "1732-1809" },
{ "recid": 2, "fname": "Ludwig Van", "lname": "Beethoven", "sdate": "1770-1827" },
{ "recid": 3, "fname": "Wolfgang Amadeus", "lname": "Mozart", "sdate": "1756-1791" },
{ "recid": 4, "fname": "Johann Sebastian", "lname": "Bach", "sdate": "1685-1750" },
],
onRender: function(event){
event.done(setBgColors);
},
});
function setBgColors(){
$("#grid_grid_column_0").addClass("bg_red");
$("#grid_grid_column_4").addClass("bg_blue");
}
});
Скрипка: http://jsfiddle.net/dt3yv2q4/3/ или http://jsfiddle.net/0Lkrb19w/