HTML到DataTable->循环表的所有行,而不是仅循环当前页中的行

时间:2019-01-25 18:51:05

标签: javascript jquery html asp.net datatable

我的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()转换为这样的数据表

当点击“删除”链接时,相关行将被删除,包括ALL在内的行的值将在javascript中更新。因此,在这里,如果我删除第一行,则该表将如下所示,而无需刷新任何页面。

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

这里的一个问题是,具有ALL TOTAL的行可以位于其他任何地方,它并不总是在表的末尾。用户可以通过单击列对表进行重新排序。例如,如果单击“值”列,则包含ALL的行将成为第一行。

这时,我想找到行所在的位置。为此,我有一个如下所示的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循环非常完美,当只有1页数据(一页包含10行)时。所以我的问题:

1-如何遍历其他页面中的其他行?上面的此循环仅适用于前10行并停止。如何将其扩展到所有表?

2-有没有更好的方法来定位包含ALL(作为“名称”列)的行的索引。

任何建议将不胜感激。谢谢!

编辑:尝试了如下所示的循环,未解决:

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

1 个答案:

答案 0 :(得分:0)

1-如何遍历其他页面中的其他行?上面的此循环仅适用于前10行并停止。如何将其扩展到所有表?

使用分页时,请尝试遍历仅显示前n行数据的html表,而不要使用 datatable API 。这样您就可以遍历完整的数据。 https://datatables.net/reference/api/rows().data()

2-是否有更好的方法来定位包含ALL(作为“名称”列)的行的索引。

与上述相同。使用数据表API ,而不是遍历当前html显示的数据。