2013-08-21 84 views
14

私はHandsontableの列見出しのテキストを編集できるようにしたいと思いますが、編集可能にできるかどうかはわかりません。私はヘッダーをちょうど別の列にすることができると思うが、可能ならばそれを避けたい。明確にするためにHandsontableのヘッダーテキストを編集するにはどうすればよいですか?

:私は実際に彼らがバックボーンサンプル(http://handsontable.com/demo/backbone.html)では、通常のテーブルセル

+2

なぜあなたは彼らが正常な細胞であることを避けるためにしようとしている?から貼り付け

コピーあなたは好きなようにスタイルを立てるためにCSSを使うことができるはずですので、他のセルとは違って見えるはずです。 – alxndr

+0

@alxndr、それは結局それをやり遂げる方法のように見えます。つまり、ヘッダーの内容を編集することができればうれしいでしょう。 – ksigmund

答えて

3

と同じように、(ユーザーがヘッダーの値を編集できるようにする方法を探しています、彼らは多分あなたが何であるかを示し、検索:

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

答えをありがとう。私は実際には(通常の表のセルと同じように)ユーザーがヘッダーの値を編集できるようにする方法を探しています。 – ksigmund

17

これはおそらく、OPのために遅すぎですが、誰が、テーブルにはすでに次でレンダリングされた後、あなたが列ヘッダ(だけでなく、他の設定)を変更することができます同じ答えを探して:

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

私が言うことができる限り、コンストラクタで利用できるすべての設定を渡すことができます。

+1

これは、セル自体を直接編集できるようにするのではなく、プログラマチックに行うことができる機能を提供するだけのものだと思います。 – ksigmund

+1

@srxf OPの質問には答えられないからではありません。彼は* user *がセルのようにテーブルのヘッダーを編集できるようにする方法を探していました。コードにはありません。これは良い答えですが、別の質問に対する答えです。 – fab

+0

@fab、ありがとう、ごめんなさい、私のダムのコメントを削除しました:) – srf

0

これを行う1つの方法は、afterGetColHeaderを使用することです。 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'; 
    }