Прежде всего, код:
<script type="text/javascript">
$(function () {
var events = []
$.get('/eventlog/status', {}, function (response) {
data = eval("(" + response + ")");
console.log("data",data);
for(var i=0; i<data.event.length; i++){
var row = { event:"INIT", type:"INIT", area:"INIT", description:"INIT", datetime:"INIT" };
row.event = data.event[i];
row.type = data.type[i];
row.area = data.area[i];
row.description = data.description[i];
row.datetime = data.datetime[i];
events.push(row);
}
});
var testData = [{event: "FLOWSTOP", type: "SET", area: "CRANE OUTBOUND", description: "Crane 1 OUTBOUND FULL", datetime: "THU 04/09/2020 16:23:26.534.500.0"},
{event: "FLOWSTOP", type: "SET", area: "CRANE OUTBOUND", description: "Crane 2 OUTBOUND FULL", datetime: "THU 04/09/2020 16:23:26.534.500.0"},
{event: "FLOWSTOP", type: "SET", area: "CRANE OUTBOUND", description: "Crane 3 OUTBOUND FULL", datetime: "THU 04/09/2020 16:23:26.534.500.0"},
{event: "JAM", type: "SET", area: "JAM", description: "Zone 104D4 Jam", datetime: "THU 04/09/2020 16:23:34.536.490.0"},
{event: "STALLED", type: "SET", area: "CRANE INFEED", description: "Crane 1 STALLED", datetime: "THU 04/09/2020 16:28:26.249.485.0"},
{event: "STALLED", type: "SET", area: "CRANE INFEED", description: "Crane 2 STALLED", datetime: "THU 04/09/2020 16:28:26.249.485.0"},
{event: "STALLED", type: "SET", area: "CRANE INFEED", description: "Crane 3 STALLED", datetime: "THU 04/09/2020 16:28:26.249.485.0"}];
console.log("testData",testData);
console.log("events", events);
var source =
{
datatype: "json",
datafields:
[
{ name: 'event' },
{ name: 'type' },
{ name: 'area' },
{ name: 'description' },
{ name: 'datetime' }
],
localdata: events
};
var dataAdapter = new $.jqx.dataAdapter(source);
$("#table").jqxGrid(
{
height: $(window).height() - 275,
width: 1300,
source: dataAdapter,
theme: 'metrodark',
altrows: true,
selectionmode: 'multiplecellsextended',
columnsresize: true,
columns: [
{ text: 'Event', datafield: 'event', width: 90},
{ text: 'Status', datafield: 'type', width: 100},
{ text: 'Area', datafield: 'area', width: 100},
{ text: 'Description', datafield: 'description', width: 'auto'},
{ text: 'Timestamp', datafield: 'datetime', width: 200, cellsformat: 'MM/dd/yyyy h:mm:ss tt'},
],
showstatusbar: true,
renderstatusbar: function (statusbar) {
},
});
$("#table").jqxGrid('updatebounddata', 'cells');
});
</script>
У меня проблема с получением jqxGrid для правильного отображения входящих данных.
У меня есть сервер, отправляющий информацию о подключении к web2py в формате json. Данные поступают правильно и отображают, как они должны быть в переменной «data».
У меня есть 2 списка: testData и events. В консоли они идентичны (как и должно быть, я скопировал отображение событий на консоли, чтобы сделать testData).
Когда я использую testData в качестве источника, данные правильно отображаются в таблице, когда я использую события, я получаю «Нет данных для отображения»
Я очень смущен, потому что оба списка выглядят идентичен мне Это вывод на консоль:
testData (7) [{…}, {…}, {…}, {…}, {…}, {…}, {…}]
0: {event: "FLOWSTOP", type: "SET", area: "CRANE OUTBOUND", description: "Crane 1 OUTBOUND FULL", datetime: "THU 04/09/2020 16:23:26.534.500.0"}
1: {event: "FLOWSTOP", type: "SET", area: "CRANE OUTBOUND", description: "Crane 2 OUTBOUND FULL", datetime: "THU 04/09/2020 16:23:26.534.500.0"}
2: {event: "FLOWSTOP", type: "SET", area: "CRANE OUTBOUND", description: "Crane 3 OUTBOUND FULL", datetime: "THU 04/09/2020 16:23:26.534.500.0"}
3: {event: "JAM", type: "SET", area: "JAM", description: "Zone 104D4 Jam", datetime: "THU 04/09/2020 16:23:34.536.490.0"}
4: {event: "STALLED", type: "SET", area: "CRANE INFEED", description: "Crane 1 STALLED", datetime: "THU 04/09/2020 16:28:26.249.485.0"}
5: {event: "STALLED", type: "SET", area: "CRANE INFEED", description: "Crane 2 STALLED", datetime: "THU 04/09/2020 16:28:26.249.485.0"}
6: {event: "STALLED", type: "SET", area: "CRANE INFEED", description: "Crane 3 STALLED", datetime: "THU 04/09/2020 16:28:26.249.485.0"}
length: 7
__proto__: Array(0)
events []
0: {event: "FLOWSTOP", type: "SET", area: "CRANE OUTBOUND", description: "Crane 1 OUTBOUND FULL", datetime: "THU 04/09/2020 16:23:26.534.500.0"}
1: {event: "FLOWSTOP", type: "SET", area: "CRANE OUTBOUND", description: "Crane 2 OUTBOUND FULL", datetime: "THU 04/09/2020 16:23:26.534.500.0"}
2: {event: "FLOWSTOP", type: "SET", area: "CRANE OUTBOUND", description: "Crane 3 OUTBOUND FULL", datetime: "THU 04/09/2020 16:23:26.534.500.0"}
3: {event: "JAM", type: "SET", area: "JAM", description: "Zone 104D4 Jam", datetime: "THU 04/09/2020 16:23:34.536.490.0"}
4: {event: "STALLED", type: "SET", area: "CRANE INFEED", description: "Crane 1 STALLED", datetime: "THU 04/09/2020 16:28:26.249.485.0"}
5: {event: "STALLED", type: "SET", area: "CRANE INFEED", description: "Crane 2 STALLED", datetime: "THU 04/09/2020 16:28:26.249.485.0"}
6: {event: "STALLED", type: "SET", area: "CRANE INFEED", description: "Crane 3 STALLED", datetime: "THU 04/09/2020 16:28:26.249.485.0"}
length: 7
__proto__: Array(0)
data
{event: Array(7), type: Array(7), area: Array(7), description: Array(7), datetime: Array(7)}
event: (7) ["FLOWSTOP", "FLOWSTOP", "FLOWSTOP", "JAM", "STALLED", "STALLED", "STALLED"]
type: (7) ["SET", "SET", "SET", "SET", "SET", "SET", "SET"]
area: (7) ["CRANE OUTBOUND", "CRANE OUTBOUND", "CRANE OUTBOUND", "JAM", "CRANE INFEED", "CRANE INFEED", "CRANE INFEED"]
description: (7) ["Crane 1 OUTBOUND FULL", "Crane 2 OUTBOUND FULL", "Crane 3 OUTBOUND FULL", "Zone 104D4 Jam", "Crane 1 STALLED", "Crane 2 STALLED", "Crane 3 STALLED"]
datetime: (7) ["THU 04/09/2020 16:23:26.534.500.0", "THU 04/09/2020 16:23:26.534.500.0", "THU 04/09/2020 16:23:26.534.500.0", "THU 04/09/2020 16:23:34.536.490.0", "THU 04/09/2020 16:28:26.249.485.0", "THU 04/09/2020 16:28:26.249.485.0", "THU 04/09/2020 16:28:26.249.485.0"]
__proto__: Object
Чего мне не хватает? Как я могу получить события для отображения в таблице?
Извините заранее. Я очень новичок в javascript, web2py и python. Я кодировал C за последние 7 лет, но мы потеряли членов команды, и я должен это сделать. Я понимаю, что, возможно, упускаю что-то очевидное, но это мне передали, и я изучаю это, разбирая рабочие экраны и реверс-инжиниринг, где могу. Я думал, что получаю приличное управление этим, пока я не столкнулся с этой проблемой.