2017-07-07 24 views
0

我有一些數據的HTML表,從該表中,我創建的圖表:在Highcharts缺失的行更改表

var chart = Highcharts.chart('graph_user_1', { 
    data: { 
     table: 'table_user_1', 
     startColumn: 0, 
     endColumn: 1 
    }, 
    chart: { 
     type: 'column' 
    }, 
    title: { 
     text: 'Coverage' 
    }, 
    yAxis: { 
     allowDecimals: true, 
     title: { 
      text: 'Hours' 
     } 
    }, 
    tooltip: { 
     formatter: function() { 
      return '<b>' + this.series.name + '</b><br/>' + 
       this.point.y + ' Points - ' + this.point.name.toLowerCase(); 
     } 
    }, 
    plotOptions: { 
     column: { 
      colorByPoint: true 
     } 
    }, 
    series: [{ 
     id: 'series1' 
    }], 
    colors: [ 
     '#ff0000', 
     '#00ff00', 
     '#0000ff', 
     '#3A8BEE', 
     '#F9B342', 
     '#DC4008' 
    ] 
}); 

我也有一個過濾器,它讓我選擇一些日期和過濾器表中,數據的這些行中未隱藏,被附加到頁上的隱藏的表:

$("#to_date").on("change", function() { 
    var from = parseDate($('#from_date').val()); 
    var to = parseDate($('#to_date').val()); 
    var loop_count = 0; 
    var hidden_count = 0; 
    $("#body tr").each(function() { 
     var row = $(this); 
     var date_from = parseDate(row.find("td").eq(7).text()); 
     var date_to = parseDate(row.find("td").eq(8).text()); 
     var show = true; 
     show = isContained(date_from, date_to, from, to); 
     if (show) { 
      row.show(); 
      legendArray.push(row); //pushes row to array 
     } else { 
      row.hide(); 
      hidden_count++; 
     } 
     loop_count++; 
    }); 
    if (hidden_count === loop_count) { 
     warning.prop("hidden", false); 
     warning.append("<strong>No results.</strong>"); 
    } 
    restore(legendArray, chart); 
}); 

結尾處的恢復功能得到具有行和AC陣列hart引用,它將數組中的行附加到新表中,然後將數據源從原始數據源更改爲隱藏表(id =「aux」)並重繪它。

function restore(array) { 
var table = document.getElementById('auxBody'); 
for (var i = 0; i <= array.length - 1; i++) { 
    table.appendChild(array[i][0].cloneNode(true)); 
} 
var complete = function(options) { 
    var chart = $('#graph_user_1').highcharts(); 
    var series1 = chart.get('series1'); 
    series1.setData(options.series[0].data, false); 
    chart.redraw(); 
}; 

Highcharts.data({ 
    table: 'aux', 
    complete: complete 
}); 

}

在此之後,該圖已更新,但總是缺少一排,最後一個。我已經打印了數組,新的表,正在追加,檢查等的節點。所有這些都顯示了所有行的表,但圖總是缺少最後一個,我認爲這是一個索引問題在添加節點的循環中,但似乎並非如此。

+0

您能重現問題並分享嗎?使用jsfiddle或類似的服務或在stackoverflow中添加代碼片段 –

+0

@NidhinChandran我在那。 另外,通過解析列並在其中打印數據,我可以告訴「名稱」屬性取不到行的值,所以它可能是一個標題問題,即使我確實添加了假頭隱藏的桌子。 – user3025738

回答

0

正如我之前發佈的那樣,這是表頭的問題。 在創作,我追加拷貝的表頭的outerHTML:

newTable.append(newTHead[0].outerHTML); 

當然這引起了一個問題,該表沒有標題,(即使它仍然表現出對檢查)溶液去除outerHTML和公正附加節點,只是一個愚蠢的概念錯誤。

newTable.append(newTHead[0]);