Html to DataTable -> Зациклить все строки таблицы вместо того, чтобы зацикливать только строки на текущей странице - PullRequest
0 голосов
/ 25 января 2019

У меня есть дата, как показано ниже на моей странице asp.net-4.5:

Name   City   Value  Action
A       B      10    delete
X       Y      10    delete
T       R      10    delete
ALL    ALL     30

Таблица HTML преобразуется в такие данные с помощью $(#example).datatable()

Когда "Удалить"ссылка нажата, соответствующая строка удаляется, а значение строки, включая ВСЕ, обновляется в javascript.Поэтому здесь, если я удалю первую строку, таблица будет выглядеть так, как показано ниже, БЕЗ любого обновления страницы.

Name   City   Value  Action
X       Y      10    delete
T       R      10    delete
ALL    ALL     20

Одна из проблем здесь заключается в том, что строка, имеющая ВСЕГО ВСЕГО, может быть где угодно, она не всегда находится вконец таблицы.Пользователь может пересортировать таблицу, щелкнув столбец.Например, если щелкнуть столбец «Значение», строка, включающая ВСЕ, будет первой строкой.

В этот момент я хочу определить местоположение строки.Для этого у меня есть цикл for, как показано ниже:

for (var i = 0, r; r = document.getElementById("example").rows[i]; i++) {
    if ($('#example').find("tr:eq(" + i + ")").find("td:eq(2)").html() == 'ALL') {
       locateALLrow = i;
       break;
   }
}

Этот цикл for работает выше, отлично работает, , когда имеется только одна страница данных (одна страница включает 10 строк). Итакмои вопросы:

1 - Как я могу пройти и по другим строкам, расположенным на других страницах?Этот цикл выше работает только для первых 10 строк и останавливается.Как я могу распространить его на все таблицы?

2 - Есть ли лучший способ найти индекс строки, включая ALL (как столбец имени).

Буду признателен за любой совет.Спасибо!

РЕДАКТИРОВАТЬ: пробовал цикл, как показано ниже, не исправить:

for (var i = 0; i<document.getElementById("example").getElementsByTagName("tr").length; i++) 
{...}

1 Ответ

0 голосов
/ 29 января 2019

1 - Как я могу пройти и по другим строкам, расположенным на других страницах?Этот цикл выше работает только для первых 10 строк и останавливается.Как я могу распространить его на всю таблицу?

Вместо обхода таблицы html, которая показывает только первые n строк данных при использовании разбиения на страницы, попробуйте поработать с API с возможностью обработки данных .Вы сможете пройти через полные данные с этим.https://datatables.net/reference/api/rows().data()

2 - Есть ли лучший способ найти индекс строки, включая ALL (как столбец имени).

То же, что и выше. Использование datatable API вместо циклического просмотра текущих данных в формате html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...