powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как отсортировать записи в таблице?
14 сообщений из 14, страница 1 из 1
Как отсортировать записи в таблице?
    #38856413
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица, заполняется из массива.

Как отсортировать скажем по первой колонке?

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
<div id="computerInfo">

    <h2>Real-time System Resource Monitor</h2>
    <h5 data-bind="visible: connected">Connected to message hub</h5>

    <table border="0" class="table table-striped">
        <tr>
            <th>Machine</th>
            <th>CPU %</th>
            <th>Memory Available (Mb)</th>
            <th>Total Memory (Mb)</th>
            <th>Mem Available %</th>
        </tr>

        <!-- ko foreach: machines -->
        <tr data-bind="css: { highCpu: cpu() > 90 || memPercent()<30 }">
            <td data-bind="text: machineName"></td>
            <td data-bind="text: cpu"></td>
            <td data-bind="text: memUsage"></td>
            <td data-bind="text: memTotal"></td>
            <td data-bind="text: memPercent"></td>
        </tr>
        <!-- /ko -->

    </table>

</div>




Заполняется из массива

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
ko.applyBindings(vm, $("#computerInfo")[0]);

    // Get a reference to our hub
    var hub = $.connection.cpuInfo;

    // Add a handler to receive updates from the server
    hub.client.cpuInfoMessage = function (machineName, cpu, memUsage, memTotal) {

        var machine = {
            machineName: machineName,
            cpu: cpu.toFixed(0),
            memUsage: (memUsage / 1024).toFixed(2),
            memTotal: (memTotal / 1024).toFixed(2),
            memPercent: ((memUsage / memTotal) * 100).toFixed(1) + "%"
        };

        var machineModel = ko.mapping.fromJS(machine);

        // Check if we already have it:
        var match = ko.utils.arrayFirst(vm.machines(), function (item) {
            return item.machineName() == machineName;
        });
...
Рейтинг: 0 / 0
Как отсортировать записи в таблице?
    #38856430
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
велосипедом: http://tablesorter.ru/docs/
...
Рейтинг: 0 / 0
Как отсортировать записи в таблице?
    #38856435
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyвелосипедом: http://tablesorter.ru/docs/

Я так понимаю это делается один раз после загрузки страницы

"После загрузки страницы дайте команду tablesorter сортировать страницу"

Но у меня история другая, я недообъяснил.

Таблица содержит записи, которые добавляются динамически клиентами через SignalR и потом обновляются
...
Рейтинг: 0 / 0
Как отсортировать записи в таблице?
    #38856441
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего, это автор сделал объяснялку для тупых, как проверить работоспособность.
Впрочем, я не тестил эту штуку на динамических таблицах. Но думаю, что они тоже будут сортироваться.
...
Рейтинг: 0 / 0
Как отсортировать записи в таблице?
    #38856454
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как отсортировать записи в таблице?
    #38856462
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyСкорее всего, это автор сделал объяснялку для тупых, как проверить работоспособность.
Впрочем, я не тестил эту штуку на динамических таблицах. Но думаю, что они тоже будут сортироваться.

разносит таблицу в моем случае, то есть вроде и сортирует, но записи размножаются при сортировке
...
Рейтинг: 0 / 0
Как отсортировать записи в таблице?
    #38856481
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну значит фтопку
...
Рейтинг: 0 / 0
Как отсортировать записи в таблице?
    #38856519
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyну значит фтопку

это нашел, прикрутил

http://ryanrahlf.com/sorting-tables-by-column-header-with-knockout-js/

Неплохо вылядит, в FF под отладчиком смотрю, попадаю в функцию сортировки, но сравнивалка всегда возвращает 0, а у автора - все чики-пики.
...
Рейтинг: 0 / 0
Как отсортировать записи в таблице?
    #38856520
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinnipuhAntonariyну значит фтопку

это нашел, прикрутил

http://ryanrahlf.com/sorting-tables-by-column-header-with-knockout-js/

Неплохо вылядит, в FF под отладчиком смотрю, попадаю в функцию сортировки, но сравнивалка всегда возвращает 0, а у автора - все чики-пики.

.. а вы ваш массив как observable объявили?
...
Рейтинг: 0 / 0
Как отсортировать записи в таблице?
    #38856521
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
carrotikWinnipuhпропущено...


это нашел, прикрутил

http://ryanrahlf.com/sorting-tables-by-column-header-with-knockout-js/

Неплохо вылядит, в FF под отладчиком смотрю, попадаю в функцию сортировки, но сравнивалка всегда возвращает 0, а у автора - все чики-пики.

.. а вы ваш массив как observable объявили?

да, все вроде нормально.
Причем сделал эксперимент: в функции сортировки насильно возвращаю 1 - сортирует (!)
Но в отладичке там в обеих переменных значения "d", какая-то фигня, не соответствующая реальным значениям, потому и всегда 0 и не сортирует.

Прицепил файл
...
Рейтинг: 0 / 0
Как отсортировать записи в таблице?
    #38856680
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh,

.. в букваре нокаута по поводу сортировки обсервабля написано следующее:

myObservableArray.sort() sorts the array contents.
The default sort is alphabetical, but you can optionally pass a function to control how the array should be sorted. Your function should accept any two objects from the array and return a negative value if the first argument is smaller, a positive value is the second is smaller, or zero to treat them as equal. For example, to sort an array of ‘person’ objects by last name, you could write myObservableArray.sort(function(left, right) { return left.lastName == right.lastName ? 0 : (left.lastName < right.lastName ? -1 : 1) })

... т.е. проверку на равенство тоже надо производить .... но, кстати, сортировку по колонкам я в своих таблицах не делал, а вот фильтрацию - делал .. там несколько другой механизм, но нарытый код в подобном виде сравнения в одну строку не работал .. переписал тупыми if-else - и заработало ...
...
Рейтинг: 0 / 0
Как отсортировать записи в таблице?
    #38856690
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinnipuhAntonariyвелосипедом: http://tablesorter.ru/docs/

Я так понимаю это делается один раз после загрузки страницы

"После загрузки страницы дайте команду tablesorter сортировать страницу"

Но у меня история другая, я недообъяснил.

Таблица содержит записи, которые добавляются динамически клиентами через SignalR и потом обновляются

я както делал подобное. Основал всё на json и делад аджакс запросы
...
Рейтинг: 0 / 0
Как отсортировать записи в таблице?
    #38856712
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
carrotikWinnipuh,

.. в букваре нокаута по поводу сортировки обсервабля написано следующее:

myObservableArray.sort() sorts the array contents.
The default sort is alphabetical, but you can optionally pass a function to control how the array should be sorted. Your function should accept any two objects from the array and return a negative value if the first argument is smaller, a positive value is the second is smaller, or zero to treat them as equal. For example, to sort an array of ‘person’ objects by last name, you could write myObservableArray.sort(function(left, right) { return left.lastName == right.lastName ? 0 : (left.lastName < right.lastName ? -1 : 1) })

... т.е. проверку на равенство тоже надо производить .... но, кстати, сортировку по колонкам я в своих таблицах не делал, а вот фильтрацию - делал .. там несколько другой механизм, но нарытый код в подобном виде сравнения в одну строку не работал .. переписал тупыми if-else - и заработало ...

да, понимаю, но как я написал в предыдущем посте:

"Но в отладичке там в обеих переменных значения "d", какая-то фигня, не соответствующая реальным значениям, потому и всегда 0 и не сортирует."

То есть все сортировалось, если бы функция сравнения работала правильно, а там я не вижу значений почему-то.
...
Рейтинг: 0 / 0
Как отсортировать записи в таблице?
    #38856754
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решил, пацаны подсказали, скобки нужны были

Код: javascript
1.
2.
3.
4.
5.
6.
7.
case 'keyMachineName':
    self.machines.sort(function (a, b) {
        var n = a.machineName() < b.machineName() ? -1 : a.machineName() > b.machineName() ? 1 : 0;
        alert(n);
        return n;//1;
    });
break;



Сбило с толку то, что в оригинальном примере скобок нет.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как отсортировать записи в таблице?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]