У меня есть веб-страница, которая отображает таблицу данных о пропускной способности сети , как это .Обратите внимание, что я включил только пару строк в качестве примеров, но моя таблица состоит из сотен строк.
В столбце, который содержит меру пропускной способности, будет отображаться значение с одной из трех единиц: Кбит / с, Мбит / с илиGbps.Как я могу настроить jquery tablesorter, чтобы он обращал внимание на модуль?
У меня уже есть Mottie's tablesorter , работающий для этой таблицы, и поведение по умолчанию - смотреть на целое число и сортировать только на основеего ценность.Ну, как вы знаете, 9,46 Мбит / с намного больше, чем 901 Кбит / с, но TableSorter просматривает только числовое значение и сортирует таблицу так, чтобы 901 Кбит / с> 9,46 Мбит / с.
Я просмотрел пользовательские парсеры но, честно говоря, я не знаю много JS, поэтому мне трудно заставить его работать.
Моя таблица данных <table id="vlan-table">
загружается через Jquery после загрузки веб-страницы, а затемvlan-таблица перезагружается каждые 60 секунд для получения последних данных (также через Jquery), поэтому мой плагин TableSorter уже более сложен, чем обычно.
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<script type="text/javascript" src="plugins/jquery.tablesorter.js"></script>
<!-- Load vlan-table on page load -->
<script type="text/javascript">
$(function ($) {
$("#vlan-table").load("data/vlan-table.html", callback);
function callback() {
$("div#vlan-table table").tablesorter({
sortList: [[0, 0]]
});
}
});
</script>
<!-- Reload vlan-table table every 60 seconds -->
<script type="text/javascript">
window.onload = setupRefresh;
function setupRefresh() {
setInterval("refreshBlock();", 60000);
}
function refreshBlock() {
$('#vlan-table').load("data/vlan-table.html", callback);
function callback() {
$("div#vlan-table table").tablesorter({
sortList: [[0, 0]]
});
}
}
</script>
Я попытался создать собственный анализатор для заменыкаждая единица Кбит / с / Мбит / с / Гбит / с (и пространство непосредственно перед ней) с номером, который должен обеспечить правильную сортировку, но я не знаю, куда поместить этот пользовательский анализатор:
$.tablesorter.addParser({
id: 'data-rate-parser',
is: function(s, table, cell, $cell){
return false;
},
format: function(s, table, cell, cellIndex) {
.replace(/ Kbps/,1000)
.replace(/ Mbps/, 1000000)
.replace(/ Gbps/, 1000000000)
},
type: 'numeric'
});
Я имеюпопытался поместить его в собственный раздел <script></script>
страницы и внутри функции callback()
, но безуспешно.
В идеале, наилучшим вариантом будет преобразование каждого показателя пропускной способности обратно в 'бит в секунду - только для сортировки, но делать это в JS выше моего уровня навыков.Спасибо!