Javascript JQuery从jsp生成的数据表中删除阈值之后的旧行
我使用JSP脚本在网页上生成一个表,该脚本给定一个列表,解析值并生成表。对于每个名称参数(示例中为2),我的表需要有相同数量的行,如下所示:Javascript JQuery从jsp生成的数据表中删除阈值之后的旧行,javascript,jquery,jsp,datatable,Javascript,Jquery,Jsp,Datatable,我使用JSP脚本在网页上生成一个表,该脚本给定一个列表,解析值并生成表。对于每个名称参数(示例中为2),我的表需要有相同数量的行,如下所示: id name value1 value1 0 name1 12 13 1 name1 11 9 2 name2 14 2 3 name2 14 4 4 name3 12 5 5 name3 1 2 6 name4 12 1 7 name4 15 2 一旦jsp接收到包含其中一个名称的新列
id name value1 value1
0 name1 12 13
1 name1 11 9
2 name2 14 2
3 name2 14 4
4 name3 12 5
5 name3 1 2
6 name4 12 1
7 name4 15 2
一旦jsp接收到包含其中一个名称的新列表元素,该表就需要删除接收到的名称中较早出现的内容并添加新行。如果我们收到新的名称1列表,则:
id name value1 value1
1 name1 11 9
8 name1 21 24
2 name2 14 2
3 name2 14 4
4 name3 12 5
5 name3 1 2
6 name4 12 1
7 name4 15 2
id name value1 value1
1 name1 11 9
8 name1 21 24
2 name2 14 2
3 name2 14 4
5 name3 1 2
9 name3 25 19
6 name4 12 1
7 name4 15 2
如果我们收到新的姓名3列表,则:
id name value1 value1
1 name1 11 9
8 name1 21 24
2 name2 14 2
3 name2 14 4
4 name3 12 5
5 name3 1 2
6 name4 12 1
7 name4 15 2
id name value1 value1
1 name1 11 9
8 name1 21 24
2 name2 14 2
3 name2 14 4
5 name3 1 2
9 name3 25 19
6 name4 12 1
7 name4 15 2
这是我的密码:
<table id="myTable">
<thead>
<tr>
<th>id</th>
<th>name</th>
<th>value1</th>
<th>value2</th>
</tr>
</thead>
<tbody>
<td>
<c:forEach items="${my_params}" var="param">
<td>${param.param}</td>
</c:forEach>
</td>
</tbody>
身份证件
名称
价值1
价值2
${param.param}
因为我是按名称分组的,所以我使用以下Datatable代码:
var group = $('tr.group');
var totalGroups = group.length;
var maxRows = totalGroups*2;
var groupColumn = 1;
$('#myTable thead th').unbind('click');
var table = $('#myTable').DataTable({
"columnDefs": [
{ "visible": false, "targets": groupColumn }
],
"order": [[ groupColumn, 'asc' ]],
"displayLength": 40,
"drawCallback": function ( settings ) {
var api = this.api();
var rows = api.rows( {page:'current'} ).nodes();
var last=null;
api.column(groupColumn, {page:'current'} ).data().each( function ( group, i ) {
if ( last !== group ) {
$(rows).eq( i ).before(
'<tr class="group"><td colspan="5">'+group+'</td></tr>'
);
last = group;
}
} );
if(table.rows().count() >= maxRows) {table.row(0).remove().draw()};
}
} );
var-group=$('tr.group');
var totalGroups=group.length;
var maxRows=totalGroups*2;
var-groupColumn=1;
$('#myTable thead th')。解除绑定('click');
变量表=$('#myTable')。数据表({
“columnDefs”:[
{“可见”:false,“目标”:groupColumn}
],
“订单”:[[groupColumn,'asc']],
“显示长度”:40,
“drawCallback”:函数(设置){
var api=this.api();
var rows=api.rows({page:'current'}).nodes();
var last=null;
column(groupColumn,{page:'current'}).data().each(函数(组,i){
如果(最后!==组){
$(行).eq(i).之前(
''+组+''
);
last=组;
}
} );
如果(table.rows().count()>=maxRows){table.row(0).remove().draw()};
}
} );
使用这种方法,我永远不会删除旧的行,因为一旦我重新加载页面,它就会被删除。使用提供的代码,只要我重新加载页面,该行就会再次被重绘。在某个阈值之后绘制新行时,如何删除旧行?
谢谢你我自己解决了这个问题,解决了一些问题。基本上,一旦生成了表,我就调用一个函数来删除第一行(最早的id),这样用户就看不到任何内容,并且超过了阈值 与此类似:
function deleteRow() {
var group = //get//group//names
var threshold = totalGroupLines
while(myTable.rows().count() >= threshold){
myTable.row(0).remove().draw();
}
}