【发布时间】:2022-01-08 18:45:06
【问题描述】:
我有两个数据源。一个来自 ajax 来自服务器,第二个来自 websocket 实时数据。 下面是我的html
<div class="card-body">
<div class="table-responsive">
<table id="TenantsTable" class="table table-striped table-bordered">
<thead>
<tr>
<th>@L("Symbol")</th>
<th>@L("Pair")</th>
<th>@L("Fact")</th>
<th>@L("SignalDate")</th>
<th>@L("SignalPrice")</th>
<th>@L("LastPrice")</th>
<th>@L("Change")</th>
<th>@L("sltp")</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
下面是我的数据表
abp.ajax({
method: 'POST',
url: abp.appPath + 'Portfolio/GetSignalsByPeriod/',
data: JSON.stringify(PeriodId),
dataType: 'json',
contentType: 'application/json',
}).done(function (result) {
myData = result;
var _$tenantsTable = $('#TenantsTable').DataTable({
datatype: 'json',
"searching": true,
"ordering": true,
data: myData,
columns: [
{ data: 'symbol' },
{ data: 'pair' },
{ data: 'signal' },
{
data: 'signalDate',
render: function (data, type, row) {
return moment(new Date(data).toString()).format('DD/MM/YYYY - h:mm:ss');
}
},
{ data: 'signalPrice' },
{
title: 'Last Price', data: null,
render: function (data, type, row, meta) {
return 1
}
},
{
title: 'Change', data: null,
render: function (data, type, row, meta) {
return 2
}
},
{
title: 'SL/TP', data: null,
render: function (data, type, row, meta) {
return 3
}
},
],
buttons: [
{
name: 'refresh-usdt',
text: 'USDT',
action: function (e, dt, node, config) {
dt.column(1).search("USDT").draw();
}
},
{
name: 'refresh-btc',
text: 'BTC',
action: function (e, dt, node, config) {
dt.column(1).search("BTC").draw();
}
},
],
});
})
let url = 'wss://stream.binance.com:9443/ws/!ticker@arr';
let ws = new WebSocket(url)
ws.onmessage = (event) => {
var _$tenantsTable = $('#TenantsTable').DataTable();
var dataWs = JSON.parse(event.data)
for (let data of dataWs) {
var selectedRow = _$tenantsTable.rows({ search: data.s }).indexes();
console.log(selectedRow);
_$tenantsTable.cell(selectedRow, 5).data(data.c);
}
}
我要做的是用这些实时数据填充最后价格、变化和 SL/TP 列。如果符号和货币对匹配来自 websocket 的符号,它应该显示其当前价格、变化和 sl/tp。我不知道是否有更好的方法或简单的方法来做到这一点。但我被困住了。
【问题讨论】:
-
嗨,这里到底是什么问题,有什么错误信息吗?也可能有不同的方式。您可以通过选择纯敲除/html 表选项来简化您的解决方案,或者有一些关于数据表和敲除的帖子。您可能想尝试一下
-
我想将带有实时数据的数据表编辑到数据表中。假设第一行的第一列是示例。实时数据有一个值为 500 的示例。我想在该行的第五列中显示该数据。
-
对不起,我还不清楚。
标签: jquery datatables