2013-08-21 23 views
14

Chciałbym móc edytować tekst nagłówków kolumn w zestawie głośnomówiącym, ale nie mogę się domyślić, czy można je edytować. Przypuszczam, że mógłbym uczynić nagłówki kolejnym rzędem, ale chciałbym tego uniknąć, jeśli to w ogóle możliwe.Jak edytować tekst nagłówka w trybie ręcznym?

Dla wyjaśnienia: Jestem rzeczywiście szuka sposobu, aby pozwolić użytkownikowi na edycję wartości nagłówka (jak oni to normalna komórka tabeli

+2

Dlaczego starasz się uniknąć konieczności ich być normalne komórki? Powinieneś być w stanie używać stylów CSS do ich stylu, tak jak chcesz, aby wyglądały inaczej niż pozostałe komórki. – alxndr

+0

@alxndr, tak, wygląda na to, że w końcu jest to możliwe. Powiedział, że byłoby miło, gdyby edycja zawartości nagłówka była obsługiwana. – ksigmund

Odpowiedz

3

W próbce szkieletowe (http://handsontable.com/demo/backbone.html), to może pokazać, kim jesteś wyszukiwanie:

var $container = $("#example1"); 
$container.handsontable({ 
    data: cars, 
    dataSchema: makeCar, 
    contextMenu: true, 
    columns: [ 
    attr("make"), 
    attr("model"), 
    attr("year") 
    ], 
    colHeaders: ["Make", "Model", "Year"] 
    //minSpareRows: 1 //see notes on the left for `minSpareRows` 
}); 
+4

Dzięki za odpowiedź. Właściwie szukam sposobu, aby zezwolić użytkownikowi na edycję wartości nagłówka (tak jak normalna komórka tabeli). – ksigmund

17

jest to prawdopodobnie zbyt późno dla pO, ale nikomu innemu szuka tej samej odpowiedzi można zmienić nagłówki kolumn (jak również innych ustawień) po tabeli już nadano następujące warunki:

var hot = $container.data('handsontable'); 
hot.updateSettings({ 
    colHeaders: ['A','B','C'] 
}); 

O ile mogę powiedzieć, możesz przekazać dowolne ustawienia dostępne w konstruktorze.

+1

Sądzę, że zapewnia to jedynie zdolność do robienia tego, co zamierzałem robić programowo, w przeciwieństwie do umożliwienia bezpośredniej edycji samej komórki. – ksigmund

+1

@ srxf To nie dlatego, że nie odpowiada na pytanie OP. Szukał sposobu, aby * użytkownik * edytować nagłówek tabeli jak komórkę. Nie w kodzie. To dobra odpowiedź, ale wciąż odpowiedź na kolejne pytanie. – fab

+0

@fab, dziękuję, przepraszam za to, skasowałem mój głupi komentarz :) – srf

0

Jednym ze sposobów jest użycie afterGetColHeader.

Kopiowanie wklejony z here

afterGetColHeader: function (col, TH) { 
     // nothing for first column 
     if (col == -1) { 
      return; 
     } 
     var instance = this; 
     // create input element 
     var input = document.createElement('input'); 
      input.type = 'text'; 
      input.value = TH.firstChild.textContent; 

     TH.appendChild(input); 

     Handsontable.Dom.addEvent(input, 'change', function (e){ 
      var headers = instance.getColHeader(); 
       headers[col] = input.value; 
      instance.updateSettings({ 
       colHeaders: headers 
      }); 
     }); 

     TH.style.position = 'relative'; 
     TH.firstChild.style.display = 'none'; 
    } 
Powiązane problemy