Datatables: установка атрибута строки HTML5 data- * из существующего JSON объекта - PullRequest
0 голосов
/ 10 февраля 2020

Я не смог найти ни одного ответа - ни в Stackoverflow, ни в Google - который отвечает на мой конкретный c вопрос. Возможно я просто не использую правильные условия поиска. Также кажется, что большинство примеров на веб-сайте Datatables имеют дело со столбцами, которые определены в html и / или не обеспечивают большую сложность.

У меня есть набор данных json, который включает столбец идентификатора, который я хотел бы использовать, чтобы открыть экран редактирования для выбранного элемента, но я не хочу, чтобы идентификатор был виден конечному пользователю.

Скрипт:

var tableData = [{
    "iditem": 1,
    "itemcaption": "Edit Your Website...",
    "itemurl": "\/\/#devurl#",
    "itemclass": "website",
    "adminonly": 0,
    "deprecated": 0
}, {
    "iditem": 2,
    "itemcaption": "Navigator",
    "itemurl": "\/admin\/?#b#",
    "itemclass": "navigator",
    "adminonly": 1,
    "deprecated": 0
}, {
    "iditem": 3,
    "itemcaption": "Ad Baskets",
    "itemurl": "\/login?cmd=dologin",
    "itemclass": "vehicleSearches",
    "adminonly": 0,
    "deprecated": 0
}, {
    "iditem": 4,
    "itemcaption": "Calendar",
    "itemurl": "\/admin\/calendar/?#b#",
    "itemclass": "calendar",
    "adminonly": 0,
    "deprecated": 0
}, {
    "iditem": 5,
    "itemcaption": "Company\/Employees",
    "itemurl": "\/admin\/company/?#b#",
    "itemclass": "company",
    "adminonly": 0,
    "deprecated": 0
}];

tblListing = $("#tblMenuList").DataTable({
    data: tableData,
    columns: [
        {title: 'Item Caption', data: "itemcaption"},
        {title: 'URL', data: "itemurl"},
        {title: 'Class', data: "itemclass"},
        {title: 'Deprecated', data: "deprecated"},
        {title: 'Admin', data: "adminonly"}
    ],
    columnDefs: [
        {
            "targets": 0,
            "render": function ( data, type, row, meta ) {
                return '<a href="editmyitem.php?id={SOMEHOW GET IDITEM IN HERE}">' + data + '</a>';
                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
            }
        }
    ]
});

HTML:

<table id="tblMenuList"></table>

Я хотел бы включить идентификатор в качестве атрибута HTML5 data- * строки. Если это невозможно, я должен просто включить столбец id, hidden и пройти DOM для значения?

Ответы [ 2 ]

1 голос
/ 11 февраля 2020

Просто добавьте IDITEM из row.iditem

скрипт

columnDefs: [
        {
            "targets": 0,
            "render": function ( data, type, row, meta ) {
                return '<a href="editmyitem.php?id='+row.iditem+'">' + data + '</a>';

            }
        }
    ]
0 голосов
/ 10 февраля 2020

Вы можете изменить модель? Может быть, вы можете добавить другой идентификатор, который вы не против публичной видимости, например, слизняк. Например, если заголовок «Мой заголовок», слаг будет «Мой заголовок». Глядя на ваши JSON данные, вы можете сделать это с помощью свойства заголовка, если у вас нет заголовка, а заголовки уникальны. Существуют удобные Javascript библиотеки, такие как slug , которые могут помочь в создании слагов и особенно полезны для удаления специальных символов, например, c.

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