2015-08-26 9 views
5

Im derzeit mit handsontable und Python + Django arbeiten, legte ich einen benutzerdefinierten gemischten Header mit Javascript. Und das sollte so aussehen.Handsontable: jquery merge Header, Bug bei horizontaler scroll

Aber wenn ich die Seite laden.

enter image description here

ABER, wenn ich zurück blättern und foward der Fehler auf magische Weise verschwinden.

enter image description here

Dies ist der Container div.

<div class="table-container" style="width: auto; height: 200px; overflow: hidden;margin-top: 20px;"> 
           <div id="table-index" data-productoscomerciales='{{productoscomerciales}}'></div> 
          </div> 

Dies ist mein JavaScript-Code.

function createTable(data, container) {  

var str = '<tr id="header-grouping">'+'<th colspan="1"></th>'+'<th colspan="1"></th>'+'<th colspan="1"></th>'+'<th colspan="15">Inventario*</th>' + 
      '<th colspan="9">Producción*</th>'+'</tr>'; 

return new Handsontable(container, { 
    data: data.slice(2,data.length), 
    minSpareRows: 1, 
    rowHeaders: false, 
    manualColumnResize: true, 

    colHeaders: data[0], 
    columns: data[1], 

    colWidths: [150, 100, 130], 
    contextMenu: false, 
    afterRender : function() {$('.htCore > thead > tr').before(str);}, 
    beforeRender: function() { 
     while ($('#header-grouping').size() > 0) 
       $('#header-grouping').remove(); 
    }, 
    afterColumnResize: function() { 
     $container.handsontable('render'); 
    }, 
     afterGetColHeader: function() { 
     while ($('.ht_clone_top.handsontable #header-grouping th').size() > 0) 
      $('.ht_clone_top.handsontable #header-grouping th').remove(); 
    }  
}); 

}

+0

verwenden Sie spezielle CSS-Dateien? – ZekeDroid

+0

Hallo ZakeDrioid, eigentlich verwende ich die Standardhandsontable CSS für die Tabelle. http://handsontable.com/bower_components/handsontable/dist/handsontable.full.min.css – FranciscoV

Antwort

0

Ich glaube, ich weiß, was los ist. Entfernen Sie die afterRender und es sollte sich selbst beheben. Das Problem, das Sie haben, ist, dass Sie versuchen, den HTML-Code in der Tabelle zu ändern, die Handson rendert, was immer eine schlechte Idee ist. Handson wird ziemlich häufig neu gerendert, etwa wenn Sie blättern oder klicken, was bedeutet, dass die Zeile nach ein paar Sekunden der Verwendung des Tisches ziemlich nutzlos ist.