javascript - 获取选定的行ID jquery数据表行选择

标签 javascript css json model-view-controller datatables

我无法获取选定的行 ID。我正在使用数据表行选择。我在控制台日志中收到 [],[""] 。我已经寻找过有关 SO 的其他问题并尝试过,但没有帮助

我的 JavaScript 代码是

  $(document).ready(function () {

    var selectedids = [];

    var otable = $('#Table1').DataTable({
        "bSort": false,
        "rowCallback": function (row, data) {
            if ($.inArray(data.DT_RowId, selectedids) !== -1) {
                $(row).addClass('selected');
            }
        }
    });
    $('#Table1 tbody').on('click', 'tr', function () {
        var id = this.id;
        var index = $.inArray(id, selectedids);

        var ids = $.map(otable.rows('.selected').data(), function (item) {
            return item[0]
        });

        console.log(ids)

        if (index === -1) {
            selectedids.push(id);
            console.log(selectedids);
        } else {
            selectedids.splice(index, 1);
        }

        $(this).toggleClass('selected');
    });

});

我正在使用 mvc 中 Controller 的 json 数据填充我的数据表

    $('#ID').change(function () {
    $("#t1 tbody tr").remove();

    $.ajax({
        type: 'POST',
        url: '@Url.Action("")',
        dataType: 'json',
        data: { id: $("#ID").val() },
        success: function (data) {
            var items = '';
            $.each(data, function (i, item) {

                var rows = "<tr>"
               + "<td>" + item.id + "</td>"
                + "<td>" + item.yyy + "</td>"
                + "<td>" + item.aaa + "</td>"
                + "<td>" + item.eee + "</td>"
                + "<td>" + item.yyygg + "</td>"
                + "</tr>";
                $('#Table1 tbody').append(rows);
            });

        },
        error: function (ex) {
            var r = jQuery.parseJSON(response.responseText);
            alert("Message: " + r.Message);

            alert("StackTrace: " + r.StackTrace);
            alert("ExceptionType: " + r.ExceptionType);
        }
    });
    return false;

});

最佳答案

如果你使用 dataTables select extension,你可以减轻很多痛苦。 :

var table = $('#example').DataTable({
   select: {
      style: 'multi'
   }
}) 

var selectedIds = [];

table.on('select.dt', function(e, dt, type, indexes) {
   selectedIds.push(indexes[0]);
   console.log(selectedIds);
})

table.on('deselect.dt', function(e, dt, type, indexes) {
   selectedIds.splice(selectedIds.indexOf(indexes[0]), 1);
   console.log(selectedIds);
})

演示 -> http://jsfiddle.net/0w1p7a3s/

关于javascript - 获取选定的行ID jquery数据表行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34333567/

相关文章:

html - 显示 :none set in css still get downloaded by the browser? 的元素

javascript - 使用 css3 过渡而不是 jQuery 动画

javascript - 如何找到两个抽象节点之间的路径

android - 更新时如何保持 ListView 的滚动位置

javascript - 在带有子文件夹的 chrome 开发工具中找不到 Grunt Babel 源映射

javascript - 我可以在 VS 2012 的 webbrowser 控件中调试 javascript 代码吗

javascript - 如何使用 Javascript 验证 HTML 表单

javascript - 兜风 - 而 cookie_monster : true nothing works

javascript - 将按钮链接到另一个页面的一部分

android - 从 json 数组中过滤所需的数据