Как добавить более одного столбца 'CRUD' для рендеринга на стороне сервера jquery datatables? - PullRequest
0 голосов
/ 06 июня 2018

У меня есть серверная страница jquery datatables, работающая в примере MVC.В ванильном примере отображалась сетка без дополнительных столбцов / ссылок для редактирования / подробностей / удаления.

Я следовал приведенному ниже примеру и успешно получил кнопку редактирования, чтобы успешно перейти к представлению редактирования MVC:

<script>

    $(document).ready(function () {

        if ($.fn.DataTable.isDataTable('#tblrtr')) {
            $('#tblrtr').dataTable().fnDestroy();
            $('#tblrtr').dataTable().empty();

        }

        var complete = $('#tblrtr').DataTable(
            {
                "serverSide": true,
                "destroy": true,
                "processing": true,
                "ajax":
                    {
                        url: "/ReportsToRecords/RTRList",
                        method: "POST"
                    },
                "columns": [
                    { "data": "id" },
                    { "data": "reportingId" },
                    { "data": "title" },
                    { "data": "name" },
                    { "data": "reportsToId" },
                    { "data": "employeeId" },

                    {
                        "title": "",
                        "data": "id",
                        "searchable": false,
                        "sortable": false,
                        "render": function (data, type, full, meta) {
                            @*return '<a href="@Url.Action("Edit","ReportsToRecords")?id=' + data + '" class="editRTR">Edit</a>'; }*@
                            return '<a class="btn btn-info" href="/ReportsToRecords/Edit/' + full.id + '">Edit</a>'; }
                    }



                ]
            }

        );

        /// Following code is for filter input to apply filter only on Enter
        var itm = $("#tblrtr_filter input")

        itm.unbind();
        itm.keyup(function (e) {
            //enter or tab
            if (e.keyCode == 13) {
                complete.search(this.value).draw();
            }
        });


    });
</script>

Теперь я хотел добавить детали и удалить навигационные кнопки в соответствующих представлениях mvc.Но если я просто скопирую код после столбцов данных и внесу соответствующие изменения в строку возврата в этом коде, рендеринг сетки перестанет работать.

Похоже, не определено более одного определенного столбца кнопки,Кто-нибудь знает правильный синтаксис для добавления деталей и кнопок удаления?Я знаю, что для этого существуют редактируемые таблицы данных с всплывающим экраном, но я пытаюсь использовать существующие представления mvc.

Мысли?

1 Ответ

0 голосов
/ 07 июня 2018

обнаружил, что мне пришлось изменить его на следующее:

                        "render": function (data, type, full, meta) {  
                            return '<a href="@Url.Action("Edit", "ReportsToRecords")?id=' + data + '" class="editReportsToRecords">Edit</a> | <a href="@Url.Action("Details", "ReportsToRecords")?id=' + data + '" class="detailsReportsToRecords">Details</a> | <a href="@Url.Action("Delete", "ReportsToRecords")?id=' + data + '" class="deleteReportsToRecords">Delete</a>';  }
...