Я пытаюсь заполнить таблицу, когда пользователь щелкает строку другой таблицы.У меня есть событие onClick
в теге <tr>
первой таблицы, которое запускает функцию для отправки трех свойств в мой webapi.У меня есть именованный обработчик, который берет три свойства и использует их в качестве входных значений для другого метода для извлечения данных из таблиц Azure.Ответ представляет собой предварительно отформатированные данные JSON, которые я передаю в код JavaScript.
В моем отображаемом виде я вижу длинную строку текста JSON;нет столбцов или строк вообще. Согласно документации я смогу связать dataSet
со значением data
DataTable
и построить таблицу динамически.
JavaScript:
function GetActivityLog(pk, rk, cn) {
var dataSet = $('#tblActivityLogs').load('/Nodes?handler=ActivityLog' + '&PartitionKey=' + pk + '&RowKey=' + rk + '&ComputerName=' + cn);
$('#tblActivityLogs').DataTable({
"ajax": {
url: '/Nodes?handler=ActivityLog' + '&PartitionKey=' + pk + '&RowKey=' + rk + '&ComputerName=' + cn,
data: dataSet
}
});
console.dir(dataSet);
}
$(document).ready(function () {
$('#tblActivityLogs').DataTable({
"order": [[0, "desc"]],
columnDefs: [
{
targets: 0,
className: 'dt-body-nowrap'
}
]
});
})
Бритва / HTML:
<tr onmouseover="" style="cursor: pointer;" role="button" id="getActivtiy" onclick="GetActivityLog('@item.PartitionKey','@item.RowKey','@item.ComputerName');">
HTML Таблица:
<div class="row">
<div class="col-lg-12">
<table id="tblActivityLogs" class="display"></table>
</div>
</div>
C # код:
public async Task<ContentResult> OnGetActivityLog([FromQuery] string PartitionKey, string RowKey, string ComputerName)
{
Activities = await _azureTableConnection.GetActivitiesAsync(PartitionKey, RowKey, ComputerName);
return Content(JsonConvert.SerializeObject(new { Activities }));
}
console.dir (dataSet) выход:
ОБНОВЛЕНИЕ:
Установите точку останова перед вызовом ajax, чтобы проверить функцию и входные значения, но при этом получить (неопределенную) ошибку.