У меня есть куча старых классических ASP-страниц, многие из которых показывают данные базы данных в таблицах. Ни на одной из страниц нет встроенной функции сортировки: вы находитесь в зависимости от любого предложения ORDER BY, которое оригинальный разработчик счел нужным использовать.
Я работаю над быстрым решением проблемы сортировки с помощью клиентского JavaScript. У меня уже есть сценарий, который в основном делает то, что мне нужно. Тем не менее, мне все еще нужно добавить один бит функциональности. Строки таблицы на этих страницах часто будут иметь чередующиеся цвета строк, и механизм, используемый для этого, различается на разных страницах. Это может быть так же просто, как изменение класса CSS, или стили могут быть встроены в код ASP.
Прямо сейчас после сортировки таблицы в каждой строке сохраняется схема раскраски, поэтому чередующиеся строки больше не чередуются. Я надеялся исправить это с помощью чего-то простого:
/* "table" is a var for the table element I'm sorting.
I've already verified it exists, and that there are at least three rows.
At this point the first row (index 0) is always the header row.
*/
// check for alternating row styles:
var RowStyle = table.rows[1].style;
var AltStyle = table.rows[2].style;
// SORT HAPPENS HERE!!
// snip
// Apply alternating row styles
if (RowStyle === AltStyle) return true;
for (var i=1,il=table.rows.length;i<il;i+=1)
{
if (i%2==0) table.rows[i].style=RowStyle;
else table.rows[i].style=AltStyle;
}
К сожалению, вы не можете просто установить свойство стиля элемента следующим образом. Он жалуется, что у объекта нет сеттера. Как еще я могу сделать это просто? Здесь не разрешено использование таких фреймворков, как jQuery - это не в моих руках.
Обновление:
Хотя это было бы лучшим решением, просто нецелесообразно проводить рефакторинг более 100 страниц для всех классов, а не для встроенного стиля. Кроме того, иногда это связано не только с цветом фона. Например, ряд может быть намного темнее или светлее, чем чередующийся ряд, при этом один стиль также имеет другой цвет переднего плана для размещения. Или альтернативный стиль может устанавливать границы по-разному. Я действительно не знаю, что используется на всех этих страницах, поэтому мне нужно что-то, что в общем случае применило бы все стилей из одной строки в другую.