Я отображаю таблицу с помощью AG-GRID, и мне нужно получить в последнем столбце каждой строки значение строки «data.Id» плюс значение строки «uu» в функцию onClick, чтобы создать ссылку, я пробую некоторые вещи, но ничего не работает . У меня есть 2 сетки MainGrid и MainViewGrid (строка основной сетки имеет одно или несколько значений сетки основного вида), и проблема с рендерингом ссылки из 2 параметров в сетке основного вида
columnDefs: [
{
headerName: 'ID',
maxWidth: 100,
valueGetter: 'node.id',
cellRenderer: 'loadingRenderer',
suppressMenu: true,
hide: true,
},
{
field: 'cv',
headerName: 'cv',
minWidth: 200,
},
{
field: 'ss',
headerName: 'ss',
minWidth: 100,
},
{
field: 'zz',
headerName: 'zz',
minWidth: 150,
},
{
field: 'uu',
headerName: 'uu',
minWidth: 100,
},
{
field: 'dd',
headerName: 'dd',
minWidth: 150,
},
{
field: 'cc',
headerName: 'cc',
maxWidth: 85,
cellRenderer: 'btnCellRenderer',
cellRendererParams: {
buttonText: 'Detail',
clicked: function (field) {
window.location.href = '@(Url.Action("Detail", "cc"))/' + field + '/' + node.id + uu
}
}
}
],
Не могли бы вы мне помочь ?
Обновлять:
Я получил undefined для параметра данных, не уверен, что это хорошее исправление, проверьте параметр данных, если он нулевой
{
field: 'cc',
headerName: 'cc',
maxWidth: 85,
cellRenderer: ({ data, buttonText, basePath }) => {
if (data == null) {
return null;
}
return "<a href='" + basePath + "/" + data.cc+ "/" + data.uu + "'>" + buttonText + "</a>";
},
cellRendererParams: {
buttonText: "Detail",
basePath: '@(Url.Action("Detail", "cc"))/'
}
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Когда сетка вызывает ваш btnCellRenderer, она передает параметры (значение ячейки, данные строки, API сетки, API столбца, объект контекста) плюс дополнительные параметры, которые вы указываете в определении столбца cellRendererParams.
По сути, вы можете получить доступ ко всему, что вам может понадобиться в вашем рендерере.
Вот как может быть настроен ваш последний столбец:
{
field: "cc",
headerName: "cc",
maxWidth: 85,
cellRenderer: ({ data, node, buttonText, basePath }) => {
return <a href = {`${basePath}field/${node.id + data.uu}`}>{buttonText}</a>;
},
cellRendererParams: {
buttonText: "Detail",
basePath: '@(Url.Action("Detail", "cc"))/'
}
}
любое предложение, пожалуйста?
есть ли у вас группировка строк или данные дерева в вашей сетке?
нет, это всего лишь простой массив ответов остального, где я использую document.addEventListener('DOMContentLoaded', function () { initializeMainGrid(); initializeMainVersionGrid(); });, у меня есть основная сетка, и после рендеринга данных в первую очередь после щелчка по любой строке в основной сетке начинается рендеринг MainVersionGrid (второй запрос API ajax/rest)
Привет @mashi, спасибо за помощь. Я получил сообщение:
Uncaught TypeError: Cannot read properties of undefined (reading 'id'), первый раз я получил Udenfined, а второй раз я получил все данные черезconsole.info(data);