使用服务器端的DataTables复选框插件获取所有选定的行

时间:2017-12-23 18:33:25

标签: javascript jquery checkbox datatables server-side

我有这个DataTable捍卫:

  var availableFilesTable = $("#availableFiles").DataTable({
                'processing': true,
                'serverSide': true,              
                'ajax': '@Url.Action("GetAllBinariesExclude", "Program", new {programId = Model.Id})',
                'columns': [
                    {
                        data: 'Id',
                        'checkboxes': {
                            'selectRow': true
                        }
                    },
                    {
                        'data': 'BinaryName'
                    },
                    { 'data': 'Sha1Hash' }
                ],
                'select': {
                    'style': 'multi'
                },
                'order': [[1, 'asc']]
            });

我想获取所有选定的行并将它们提交给服务器,我有以下代码用于表单提交事件:

  $('form').submit(function(event) {
                event.preventDefault();

                var form = this;

                var existingFileIds = selectedFilesTable.column(0).checkboxes.selected();

                var fileIndex = 0;

                var newFiles = availableFilesTable.column(0).checkboxes.selected();

                $.each(newFiles,
                    function(index, fileId) {
                        $(form).append(
                            $('<input>')
                            .attr('type', 'hidden')
                            .attr('name', 'SelectedBinaryFilesIds[' + fileIndex + ']')
                            .val(fileId)
                        );
                        fileIndex++;
                    });

                if ($(form).valid()) {
                    form.submit();
                }
            });

问题是,当我放置一个调试器并检查newFiles的内容时,它只包含DataTable的活动页面的内容,任何提示我做错了什么? 我希望在服务器端呈现的所有页面中获取所有选定的行,但使用以下代码我只会在活动页面中获取所选行。

非常感谢任何帮助。

0 个答案:

没有答案