Как сделать выпадающий список из DataTable не за пределами вашей таблицы? - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть выпадающий список, но он находится вне моей DataTable и должен быть внутри, но я изо всех сил пытаюсь добиться этого и вижу мой код ниже для logi c. Пожалуйста, помогите мне улучшить эту логику c для удобства чтения. Причина для этой логики c в том, что мне нужен мой выпадающий список, должна позволять пользователю выбирать из данных данные, а не данные, представленные вне этого списка записей, я надеюсь, что я понимаю, как именно то, к чему я стремлюсь.

 // Drop downlist for WhoAttended.

    public enum Attendees
    {
        Engineers,
        Technicians,
        Inspectors
    }

// View cshtml

<link href="//cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.6/semantic.min.css" rel="stylesheet" />
<link href="https://cdn.datatables.net/1.10.15/css/dataTables.semanticui.min.css" rel="stylesheet" />

@section scripts{

      <script src="//cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.10.15/js/dataTables.semanticui.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.6/semantic.min.js"></script>

    <script>

        $(document).ready(function () {

            $("#EventsManagementsTable").DataTable({

                "columnDefs": [
                { "width": "5%", "targets": [0] }, 
                { "className": "text-center custom-middle-align" ,"targets":[0, 1, 2, 3, 4, 5, 6] },
                ],

                "serverSide": "true",
                "order":[0,"asc"], 
                "processing": "true",
                "language": {
                    "processing": "processing...... please wait"
                },
                "ajax": {
                    "url": "/Dashboard/GetData",
                    "type": "POST",
                    "datatype": "JSON"

                },
                "columns": [
                    {"data": "TrainingType", "name": "TrainingType"},
                    { "data": "TrainingDescription", "name": "TrainingDescription"},
                    { "data": "Price", "name": "Price"},
                    { "data": "Venue", "name": "Venue"},
                    { "data": "Facilitator", "name":"Facilitator" },
                    { "data": "WhoAttend", "name" : "WhoAttend" },
                    {"data": "RSVP", "name":"RSVP" },
                ]


            });

        });







    </script>

// Что я сейчас делаю, чтобы получить выпадающий список в DataTable.

 <script>

        $(document).ready(function () {

            $("#EventsManagementsTable").DataTable({

                "columnDefs": [
                { "width": "5%", "targets": [0] }, 
                { "className": "text-center custom-middle-align" ,"targets":[0, 1, 2, 3, 4, 5, 6] },
                ],

                "serverSide": "true",
                "order":[0,"asc"], 
                "processing": "true",
                "language": {
                    "processing": "processing...... please wait"
                },
                "ajax": {
                    "url": "/Dashboard/GetData",
                    "type": "POST",
                    "datatype": "JSON",

                },

                "columns": [
                    {"data": "TrainingType", "name": "TrainingType"},
                    { "data": "TrainingDescription", "name": "TrainingDescription"},
                    { "data": "Price", "name": "Price"},
                    { "data": "Venue", "name": "Venue"},
                    { "data": "Facilitator", "name":"Facilitator" },
                    { "data": "WhoAttend", "name" : "WhoAttend" },
                    { "data": "RSVP", "name": "RSVP" },

                    "columns":[
                    {

                        "data": "WhoAttend",
                        "name": "WhoAttend",
                        "render": function (value) {
                            return $("<select/>")
                                .addClass("form-control")
                                .attr("name", "WhoAttend")
                                .append($("<option/>").text("Engineers"))
                                .append($("<option/>").text("Inspectors"))
                                .append($("<option/>").text("Technicians"))
                                .val(value)
                                .html();
                        }

                    }


                ],

                ]

            });

        });

1 Ответ

0 голосов
/ 15 февраля 2020

Привет, в разделе колонок добавьте этот код, чтобы добавить пользовательский элемент HTML:

"columns": [
                {"data": "TrainingType", "name": "TrainingType"},
                { "data": "TrainingDescription", "name": "TrainingDescription"},
                { "data": "Price", "name": "Price"},
                { "data": "Venue", "name": "Venue"},
                { "data": "Facilitator", "name":"Facilitator" },
                { "data": "WhoAttend", "name" : "WhoAttend" },
                {"data": "RSVP", "name":"RSVP" }
                   {
                className: "center",
                defaultContent:`<select name='slcCustom' class='custom' >
                  <option value='default'>select something</option>
                  <option value='1'>Apple</option>
                  </select>`
              }
               ]

Здесь вы можете проверить jsfiddle .

Надеюсь это помогает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...