添加新的行数据表后,已删除的行会重新出现

阿波罗夫

嗨,我是DataTables的新手....我有一个数据表,我想在其中添加行(一次一个),并具有多行删除的功能。我设法使正常功能正常工作,但是问题是当我删除一行/行然后尝试添加新行时,已删除的行又出现在与选定行相同的位置上....以下是代码i正在用于初始化DataTable以及在DataTable中添加和删除行的功能...。任何帮助将不胜感激...

            $(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');
         }

上面的代码只是为了测试功能,其中包括一些不需要的内容。...

****帖子更新****表格html是用模板编写的,我正在表单内调用...带有表单代码的父gsp文件在下面...

主gsp文件

    <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>

模板html代码如下

<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>

主文件中用于初始化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);
            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');
}

提前致谢

阿波罗夫

感谢您阅读我的问题并花时间回答它,我找到了解决方案...以下是可在其他情况下使用的代码....

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

function fnGetSelected(oTableLocal) {
    return oTableLocal.$('tr.selected');
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Windows 7,删除后重新出现文件

来自分类Dev

排序后,删除的文件仍会重新出现在桌面上

来自分类Dev

清除搜索后,原始数据不会重新出现

来自分类Dev

为什么我的Google App Engine数据存储区实体在删除后会重新出现?

来自分类Dev

使用.hide()jQuery后,Div重新出现

来自分类Dev

为什么在调用函数后重新出现QMenu

来自分类Dev

调用.remove()后,导航栏重新出现

来自分类Dev

页面加载后,隐藏的Div重新出现

来自分类Dev

调整表格大小后如何使A列重新出现?

来自分类Dev

Android通知重新出现

来自分类Dev

隐藏的Div文字重新出现?

来自分类Dev

如何重新出现图像?

来自分类Dev

Azure队列-重新出现消息

来自分类Dev

如何让按钮重新出现?

来自分类Dev

SSD上的文件消失,重新启动后重新出现

来自分类Dev

应用进入前景后,隐藏的导航栏重新出现

来自分类Dev

闲置几秒钟后,libgdx问题使鼠标重新出现

来自分类Dev

UITableView重新出现后,UISearchBar无法成为第一响应者

来自分类Dev

* ngIf重新出现按钮后,Angular sidenav.toggle()不起作用

来自分类Dev

为什么鼠标悬停后隐藏的分隔线会重新出现?

来自分类Dev

应用程序从后台重新出现后,动画将不起作用

来自分类Dev

jQuery – 单击“阅读更少”后,“阅读更多”跨度不会重新出现

来自分类Dev

取消选中多个复选框后需要重新出现内容

来自分类Dev

标签超出面板宽度后如何使其重新出现

来自分类Dev

内存缓存-从内存缓存中删除的值会重新出现

来自分类Dev

从先前播放的视频中删除字幕的重新出现

来自分类Dev

MS Word:删除图像并保存时,图像会重新出现

来自分类Dev

内存缓存-从内存缓存中删除的值会重新出现

来自分类Dev

如何在swift上添加消失和重新出现的文本

Related 相关文章

  1. 1

    Windows 7,删除后重新出现文件

  2. 2

    排序后,删除的文件仍会重新出现在桌面上

  3. 3

    清除搜索后,原始数据不会重新出现

  4. 4

    为什么我的Google App Engine数据存储区实体在删除后会重新出现?

  5. 5

    使用.hide()jQuery后,Div重新出现

  6. 6

    为什么在调用函数后重新出现QMenu

  7. 7

    调用.remove()后,导航栏重新出现

  8. 8

    页面加载后,隐藏的Div重新出现

  9. 9

    调整表格大小后如何使A列重新出现?

  10. 10

    Android通知重新出现

  11. 11

    隐藏的Div文字重新出现?

  12. 12

    如何重新出现图像?

  13. 13

    Azure队列-重新出现消息

  14. 14

    如何让按钮重新出现?

  15. 15

    SSD上的文件消失,重新启动后重新出现

  16. 16

    应用进入前景后,隐藏的导航栏重新出现

  17. 17

    闲置几秒钟后,libgdx问题使鼠标重新出现

  18. 18

    UITableView重新出现后,UISearchBar无法成为第一响应者

  19. 19

    * ngIf重新出现按钮后,Angular sidenav.toggle()不起作用

  20. 20

    为什么鼠标悬停后隐藏的分隔线会重新出现?

  21. 21

    应用程序从后台重新出现后,动画将不起作用

  22. 22

    jQuery – 单击“阅读更少”后,“阅读更多”跨度不会重新出现

  23. 23

    取消选中多个复选框后需要重新出现内容

  24. 24

    标签超出面板宽度后如何使其重新出现

  25. 25

    内存缓存-从内存缓存中删除的值会重新出现

  26. 26

    从先前播放的视频中删除字幕的重新出现

  27. 27

    MS Word:删除图像并保存时,图像会重新出现

  28. 28

    内存缓存-从内存缓存中删除的值会重新出现

  29. 29

    如何在swift上添加消失和重新出现的文本

热门标签

归档