【发布时间】:2018-10-10 20:20:59
【问题描述】:
当用户单击另一个表的行时,我正在尝试填充一个表。我在第一个表的<tr> 标记中有一个onClick 事件,它触发一个函数以将三个属性发送到我的webapi。我有一个命名处理程序,它采用三个属性并将它们用作另一个方法的输入值,以从 Azure 表中检索数据。响应是我提供给 JavaScript 代码的预格式化 JSON 数据。
我在渲染视图中看到的是一长串 JSON 文本;根本没有列或行。 根据documentation,我应该能够将dataSet 绑定到DataTable 的data 值并动态构建表。
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 调用之前设置断点以测试函数和输入值,但仍会出现(未定义)错误。
【问题讨论】:
-
嗨@Jason,您可以在
GetActivityLog函数中添加console.dir(dataSet)并将输出添加到您的问题吗? -
你打赌。做完了。有趣的是,
dataSet本身似乎是一个表对象,而不是我想的原始 JSON。也许我不应该做$('#tblActivityLogs').load? -
让我回答你的问题。
-
为了不泄露机密信息,我编辑了您的问题。
标签: javascript c# jquery datatables