Vadivel Murthy Ответов: 1

Нужно настроить столбец, как excel в jquery datatables (MVC, C#)


в моем проекте мы используем таблицы данных для отображения данных, один из столбцов имеет текст более 200 символов, поэтому пользователь хочет, чтобы этот столбец имел фиксированную ширину, но всякий раз, когда он хочет, он может растянуть ширину столбца, чтобы увидеть полный текст в нем. ( Например: в excel мы можем настроить ширину столбца ) как то, что мы хотим реализовать, возможно ли это.

Не могли бы вы предложить сделать это

Что я уже пробовал:

$(document).ready(function () {

        //Fetching the data from the table using Datatable & Ajax call. .table{width:auto;table-layout:fixed}
        var table = $("#FMHelp").DataTable({
            "ajax": {
                "url": "/Help/GetHelpDetails/",
                "type": "GET",
                "datatype": "json"
            },
            "dom": 'Bfrtip',
            //"dom": '',
            "buttons": [{
                extend: 'excel',
                title: 'FM Help Details',
                filename: 'FM Help Details',
                text: "Export to Excel"
            }
            ],
            //dom: 'lfrtip',
            //initComplete: function(){
            //    $("div.toolbar").html('Click Me!'); },
            "pageLength": 15,
            "lengthMenu": [15, 20, 30, 50, 75, 100],
            "columns": [
                { "data": "ID" },
                { "data": "Description" },
                { "data": "Link" },
                { "data": "File" },
                { "data": "CreatedDate"},
                {
                    mRender: function (data, type, row) {
                        var linkEdit = 'Edit';
                        linkEdit = linkEdit.replace("-1", row.ID);
                        var linkDelete = 'Delete';
                        linkDelete = linkDelete.replace("-1", row.ID);
                        return linkEdit;

                        //return linkEdit + " | " + linkDelete;
                    }
                }],

            
            "columnDefs": [
                   {
                       "targets": [2],
                       "searchable": false,
                    "render": function (data, type, full, meta) {
                        data = '' + data + '';
                        return data;
                    }

                },
                {
                    "targets": [3],
                    "searchable": false,
                    "render": function (data, type, full, meta) {
                        data = 
                            data = '' + data + '';
                        return data;
                    }
                },
                {
                    "targets": [4],
                    "searchable": false,
                    "render": function (value) {
                        if (value != null)
                        {
                            var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec"];
                            var pattern = /Date\(([^)]+)\)/;
                            var results = pattern.exec(value);
                            var dt = new Date(parseFloat(results[1]));
                            dt = dt.getDate() +  "-"  + months [dt.getMonth()] + "-" + dt.getFullYear();
                            return dt;
                        }
                    }
                },
            {
                "targets": [ 5 ],
                "searchable": false
            }]
        });

1 Ответов

Рейтинг:
2

lw@zi

AFAIK нет ничего встроенного, чтобы поддержать это в таблицах jQuery. Ваш альтернативный вариант может заключаться в использовании любого из них этот[^] расширение или написать его самостоятельно. Вы также можете оценить некоторую другую таблицу на основе JS, которая имеет эту функциональность.