У меня есть куча старых классических страниц ASP, многие из которых показывают данные базы данных в таблицах. Ни одна из страниц не имеет встроенных функций сортировки: вы находитесь во власти любого предложения ORDER BY, которое использует оригинальный разработчик.
Я работаю над быстрым исправлением при сортировке с помощью javascript на стороне клиента. У меня уже есть script, который в основном делает то, что мне нужно. Однако мне еще нужно добавить один бит функциональности. Строки таблицы на этих страницах часто имеют чередующиеся цвета строк, а механизм, используемый для достижения этого, варьируется между страницами. Это может быть так же просто, как изменение класса CSS, или стили, возможно, были сделаны inline с помощью кода 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, разрешено здесь - из моих рук.
Update:
Хотя это было бы лучшим решением, просто не практично реорганизовывать более 100 страниц для всех классов использования, а не для встроенного стиля. Кроме того, иногда там больше задействовано, чем только цвет фона. Например, строка может быть намного темнее или легче, чем чередующийся ряд, причем один стиль имеет другой цвет переднего плана, а также для размещения. Или чередующийся стиль может устанавливать границы по-разному. Я действительно не знаю, что используется на всех этих страницах, поэтому мне нужно что-то, что в общем случае будет применять все стили из одной строки в другую.