Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery从jsp生成的数据表中删除阈值之后的旧行_Javascript_Jquery_Jsp_Datatable - Fatal编程技术网

Javascript JQuery从jsp生成的数据表中删除阈值之后的旧行

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接收到包含其中一个名称的新列

我使用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接收到包含其中一个名称的新列表元素,该表就需要删除接收到的名称中较早出现的内容并添加新行。如果我们收到新的名称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();
}
}