删除的行会在添加新行数据表时出现

编程入门 行业动态 更新时间:2024-10-21 03:38:14
本文介绍了删除的行会在添加新行数据表时出现的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我是一个新手的DataTables ....我有一个数据表,我想添加行(一次一个),并具有多次删除的能力。我已经设法获得正常的功能工作,但问题是,当我删除一行/行,然后尝试添加一个新行删除的行显示在与选定的行相同的位置....下面是代码我我正在使用初始化DataTable和在DataTable中添加和删除行的功能....任何帮助将不胜感激...

上面的代码只是为了测试功能而不需要一些东西.. ..

****更新在post **** 表html是写在一个模板,我正在调用一个表单...具有表单代码的父级gsp文件位于.....

主要gsp文件

< g:form action =saveTravelDetailsid =createRequestname =createRequestautocomplete =off> < g:render template =newTravelRequest/> < div class =row> < div class =col-md-12> < div class =form-groupstyle =text-align:center;> < input id =circuit_saveclass =btn btn-primary circuit_validatetabindex =700class =button_texttype =submitname =circuit_savevalue =保存/> < input id =circuit_cancelclass =btn btn-defaultclass =button_texttype =buttonname =circuit_cancelvalue =取消/> < button type =buttonclass =btn btn-primarydata-toggle =modaldata-target =#detailsModal>添加新行< / button> < button type =buttonclass =btn btn-primaryid =removeRow>删除所选行< / button> < / div> < / div> < / div> < / g:form>

模板html代码位于

< div class =row> < div class =col-md-12> < div class =panel panel-default> < div class =panel-heading> < i class =fa fa-user>< / i>旅行详情< div class =panel-tools> < a href =#class =btn btn-xs btn-link panel-collapse collapses> < / a> < / div> < / div> < div class =panel-body> < table cellpadding =0cellspacing =0border =0class =displayid =example> < thead class =alignCenter> < tr> < th class =headerclass>离开日期< / th> < th class =headerclass>返回日期< / th> < th class =headerclass>离开目的地< / th> < th class =headerclass>到达目的地< / th> < th class =headerclass>选择运输方式< / th> < th class =headerclass>旅行成本< / th> < / tr> < / thead> < tbody>< / tbody> < tfoot class =alignCenter headerclass> < tr> < th class =headerclass>离开日期< / th> < th class =headerclass>返回日期< / th> < th class =headerclass>离开目的地< / th> < th class =headerclass>到达目的地< / th> 将第类= headerclass >选择模式前述<运输; /第> 将第类= headerclass >旅游及LT的成本; /第> < / tr> < / tfoot> < / table> < / div> < / div> < / div> < / div>

下面给出了初始化DataTable的主文件中更新的javascript代码...这也有添加和删​​除行的功能定义

$(document).ready(function(){ var counter = 1 $('#addRow')。on('click',function(){ t.row.add([ $('#departureDate_1')。val(), $('#returnDate_1')。val(), $('#startDestination')val(), $('#endDestination')val(), $('#travelMode')。val(), $('#travelFare')val(), ]).draw(false); 计数器++; $('#detailModal')modal('hide'); }); $('#example tbody')。on('click','tr',function(e){ if($(this).hasClass选择了)){ $(本).removeClass(选择); $(this).css('background-color','')} else { t。$('tr.selected'); //。removeClass ('selected'); $(this).addClass('selected'); $(本)的CSS(背景色,蓝色); } }); $('#removeRow')。click(function(){ var anSelected = fnGetSelected(t); $(anSelected).remove() ; }); var t = $('#example')。DataTable({'fnCreatedRow':function(nRow,aData,iDataIndex){ $(nRow).attr 'id','my'+ iDataIndex); $(nRow).attr('name','my'+ iDataIndex); //或者你选择设置为id } aoColumnDefs:[{aTargets:[0,1,2,3,4,5],fnCreatedCell:function(nTd,sData,oData,iRow, iCol){ var idx = t.cell(nTd).index()。column; var title = t.column(idx).header(); $(nTd)。 attr(name,$(title).html()+_+ iRow) $(nTd).attr(id,$(title).html()+_+ iRow )} }] }); $('#departureDate')。on('change',function(){ $('。bootstrap-datetimepicker-widget')css('display','none '); }); $('#returnDate')。on('change',function(){ $('。bootstrap-datetimepicker-widget')css('display','none '); }); $('#departureDate')。datetimepicker({格式:'YYYY-MM-DD', pick12HourFormat:false, autoclose :true }); $('#returnDate')。datetimepicker({格式:'YYYY-MM-DD', pick12HourFormat:false, autoclose:true }); }); 函数fnGetSelected(oTableLocal) { return oTableLocal。$('tr.selected'); }

提前感谢

$('#removeRow')。click(function(){ var anSelected = fnGetSelected(t); alert(anSelected); t.row(anSelected).remove()。draw(false); }); 函数fnGetSelected(oTableLocal){ return oTableLocal。$('tr.selected'); }

Hi i am a newbie to DataTables .... i have a data table in which i would like to add rows (one at a time) and have the capability of a multirow delete. I have managed to get the normal functionality working but the problem is that when i delete a row/rows and then try to add a new row the deleted rows appear back in the same positions as selected rows .... below is the code i am using to initialize the DataTable and the functionality to add and delete rows in my DataTable.... Any help would be appreciated ...

$(document).ready(function (){ var counter = 1 $('#addRow').on( 'click', function (a,b,c,d,e,f) { a = "test" t.row.add( [ counter +a, counter +'test', counter +'test', counter +'test', counter +'test', counter +'test' ] ).draw(false); counter ++; } ); $('#example tbody').on( 'click', 'tr', function (e) { if ( $(this).hasClass('selected') ) { $(this).removeClass('selected'); $(this).css('background-color', '') } else { t.$('tr.selected');//.removeClass('selected'); $(this).addClass('selected'); $(this).css('background-color', 'blue'); } } ); $('#removeRow').click( function () { var anSelected = fnGetSelected( t ); $(anSelected).remove(); } ); var t = $('#example').DataTable({ 'fnCreatedRow': function (nRow, aData, iDataIndex) { $(nRow).attr('id', 'my' + iDataIndex); }, "aoColumnDefs": [ { "aTargets": [0,1,2,3,4,5], "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) { var idx = t.cell( nTd ).index().column; var title = t.column( idx ).header(); $(nTd).attr("id",$(title).html() +"_"+ iRow) } } ] }); }); function fnGetSelected( oTableLocal ) { return oTableLocal.$('tr.selected'); }

The above code is just to test functionality with a few things not required....

**** Update on post **** The table html is written in a template which i am calling inside a form ... The parent gsp file with form code is below .....

Main gsp file

<g:form action="saveTravelDetails" id="createRequest" name="createRequest" autocomplete="off"> <g:render template="newTravelRequest" /> <div class="row"> <div class="col-md-12"> <div class="form-group" style="text-align: center;"> <input id="circuit_save" class="btn btn-primary circuit_validate" tabindex="700" class="button_text" type="submit" name="circuit_save" value="Save" /> <input id="circuit_cancel" class="btn btn-default" class="button_text" type="button" name="circuit_cancel" value="Cancel" /> <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#detailsModal">Add new row</button> <button type="button" class="btn btn-primary" id="removeRow">Remove Selected Row</button> </div> </div> </div> </g:form>

The template html code is below

<div class="row"> <div class="col-md-12"> <div class="panel panel-default"> <div class="panel-heading"> <i class="fa fa-user"></i> Travel Details <div class="panel-tools"> <a href="#" class="btn btn-xs btn-link panel-collapse collapses"> </a> </div> </div> <div class="panel-body"> <table cellpadding="0" cellspacing="0" border="0" class="display" id="example"> <thead class="alignCenter"> <tr> <th class="headerclass">Departure Date</th> <th class="headerclass">Return Date</th> <th class="headerclass">Departure Destination</th> <th class="headerclass">Arrival Destination</th> <th class="headerclass">Choose Mode Of Transport</th> <th class="headerclass">Cost of Travel</th> </tr> </thead> <tbody></tbody> <tfoot class="alignCenter headerclass"> <tr> <th class="headerclass">Departure Date</th> <th class="headerclass">Return Date</th> <th class="headerclass">Departure Destination</th> <th class="headerclass">Arrival Destination</th> <th class="headerclass">Choose Mode Of Transport</th> <th class="headerclass">Cost of Travel</th> </tr> </tfoot> </table> </div> </div> </div> </div>

The updated javascript code in the main file which initializes the DataTable is given below ... this also has the function definition to Add and Delete rows

$(document).ready(function (){ var counter = 1 $('#addRow').on( 'click', function () { t.row.add( [ $('#departureDate_1').val(), $('#returnDate_1').val(), $('#startDestination').val(), $('#endDestination').val(), $('#travelMode').val(), $('#travelFare').val(), ] ).draw(false); counter ++; $('#detailsModal').modal('hide'); } ); $('#example tbody').on( 'click', 'tr', function (e) { if ( $(this).hasClass('selected') ) { $(this).removeClass('selected'); $(this).css('background-color', '') } else { t.$('tr.selected');//.removeClass('selected'); $(this).addClass('selected'); $(this).css('background-color', 'blue'); } } ); $('#removeRow').click( function () { var anSelected = fnGetSelected( t ); $(anSelected).remove(); } ); var t = $('#example').DataTable({ 'fnCreatedRow': function (nRow, aData, iDataIndex) { $(nRow).attr('id', 'my' + iDataIndex); $(nRow).attr('name', 'my' + iDataIndex); // or whatever you choose to set as the id }, "aoColumnDefs": [ { "aTargets": [0,1,2,3,4,5], "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) { var idx = t.cell( nTd ).index().column; var title = t.column( idx ).header(); $(nTd).attr("name",$(title).html() +"_"+ iRow) $(nTd).attr("id",$(title).html() +"_"+ iRow) } } ] }); $('#departureDate').on('change',function (){ $('.bootstrap-datetimepicker-widget').css('display','none'); }); $('#returnDate').on('change',function (){ $('.bootstrap-datetimepicker-widget').css('display','none'); }); $('#departureDate').datetimepicker({ format: 'YYYY-MM-DD', pick12HourFormat: false, autoclose: true }); $('#returnDate').datetimepicker({ format: 'YYYY-MM-DD', pick12HourFormat: false, autoclose: true }); }); function fnGetSelected( oTableLocal ) { return oTableLocal.$('tr.selected'); }

Thanks in advance

解决方案

thanks for reading my question and taking the time to answer it i found the solution ... Below is the code which can be used in other scenarios also ....

$('#removeRow').click(function() { var anSelected = fnGetSelected(t); alert(anSelected); t.row(anSelected).remove().draw(false); }); function fnGetSelected(oTableLocal) { return oTableLocal.$('tr.selected'); }

更多推荐

删除的行会在添加新行数据表时出现

本文发布于:2023-10-27 23:16:41,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:行会   行数   据表时

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!