показать раскрывающийся список в Datatable - PullRequest
0 голосов
/ 07 мая 2020

Мне нужно показать раскрывающийся список в столбце Назначение. Проблема: Я не могу передать массив строк в функции ".each" Jquery после ответа Ajax.

enter image description here

Ajax Call: paramedicsAvailable - это массив, который я пытаюсь передать каждой функции Jquery. Но я получаю вышеуказанный результат. Как передать массив в функцию .each?

 $(document).ready(function () {
        $("#example").DataTable({
            "ajax": {
                "url": "https://XXXXMMSSSDDY/Home/GetCaseAllocations",
                "type": "GET",
                "datatype": "json",
            },
            "columns": [
                { "data": "patientId" },
                { "data": "name" },
                { "data": "age" },
                { "data": "zipCode" },
                { "data": "status" },
                {
                    data: "paramedicsAvailable", width: "200px",
                    render: function (data, type, row) {
                        var $select = $("<select></select>",
                            {
                                id: row.owner,
                                value: data
                            });
                        $.each({ "data": "paramedicsAvailable" }, function (k, v) {
                            var $option = $("<option></option>",
                                {
                                    text: v,
                                    value: v
                                });
                            if (row.owner === v) {
                                $option.attr("selected", "selected")
                            }
                            $select.append($option);
                        });
                        return $select.prop("outerHTML");
                    }
                }
            ],
        });
    });

Вот мой Json Ответ:

  "data": [
    {
      "name": "Test Sharma Sharma",
      "age": "25",
      "patientId": "TE3434342068",
      "zipCode": "500072",
      "paramedicsAvailable": [
        "Manish Sharma",
        "Pranay Gunthla",
        "Suraj Kumar"
      ],
      "status": "NOT ASSINGED"
    },
    {
      "name": "Test Sharma Sharma",
      "age": "25",
      "patientId": "TE3434349697",
      "zipCode": "500072",
      "paramedicsAvailable": [
        "Manish Sharma",
        "Pranay Gunthla",
        "Suraj Kumar"
      ],
      "status": "NOT ASSINGED"
    }
  ]
}```

1 Ответ

0 голосов
/ 07 мая 2020

Я только что решил это. Я отправил "data": "paramedicsAvailable" вместо data: "paramedicsAvailable" и отправил параметр данных в каждой функции.

$(document).ready(function () {
    $("#example").DataTable({
        "ajax": {
            "url": "https://XXXXMMSSSDDY/Home/GetCaseAllocations",
            "type": "GET",
            "datatype": "json",
        },
        "columns": [
            { "data": "patientId" },
            { "data": "name" },
            { "data": "age" },
            { "data": "zipCode" },
            { "data": "status" },
            {
                "data": "paramedicsAvailable", width: "200px",
                render: function (data, type, row) {
                    var $select = $("<select></select>",
                        {
                            id: row.owner,
                            value: data
                        });
                    $.each(data, function (k, v) {
                        var $option = $("<option></option>",
                            {
                                text: v,
                                value: v
                            });
                        if (row.owner === v) {
                            $option.attr("selected", "selected")
                        }
                        $select.append($option);
                    });
                    return $select.prop("outerHTML");
                }
            }
        ],
    });
});
...