3

シフトキー選択機能と同じように、シフトキーを使用してjQueryデータテーブルで複数の行を選択し、選択した行項目を変数に格納する必要があります。また、クリック イベントを使用して複数の行を選択する必要があります。

1 つの変数を使用して、ライブ クリック行とシフト選択行を渡す必要があります。どうやってそれをするのですか?

これは正しく機能しておらず、選択した行の単一の変数を格納していません。どこが間違っていますか?

私のコード:

var aSelected = [];
var lastSelected;

$('#table tr').live('click', function (event) {
    var tableRow = $(this).closest("tr").prevAll("tr").length + 1;

    var id = this.cells[0].innerHTML;
    var index = jQuery.inArray(id, aSelected);
    if (index === -1) {
        aSelected.push(id);
    } else {
        aSelected.splice(index, 1);
    }

    $(this).toggleClass('row_selected');

    if (event.shiftKey) {
        var table = $('#table ');
        var start = Math.min(tableRow, lastSelected);
        var end = Math.max(tableRow, lastSelected);

        for (var i = start; i < end; i++) {
            $('#table').each(function () {
                table.find('tr:gt(' + (start - 1) + '):lt(' + (end) + ')').addClass('row_selected');
            });
        }

    } else {

        lastSelected = $(this).closest("tr").prevAll("tr").length + 1;
    }
});

たとえば、20行あります。行を選択し、選択した行 ID を渡す 3 つの原因があります。 Ctrlキーを使用して行と余分な2行 他の10行と12行を渡す

4

2 に答える 2

1

次のコードを使用します

     $('#tableId').dataTable( {

    "sDom": 'T<"clear">lfrtip',
    "oTableTools": {
        "sRowSelect": "multi",
        "aButtons": [ "select_all", "select_none" ]
    }
} );

このコードを使用すると、シフトキーを使用せずに複数の行を選択できます

于 2013-02-26T05:24:00.660 に答える