2017-09-28 85 views
0

Handsontableの外にあるチェックボックスがあります。 My Handsontableにはajaxが埋め込まれています。チェックボックスの値に基づいてHandsontableカラムを非表示にして表示したい。私のコードは、あなたがチェックしたり、チェックボックスをオフにして、それが正常に動作したときにこのコードはのみ実行CheckboxとHandsontable

Handsontable.dom.addEvent(mycheckbox, 'change', function() { 
      var hot = $container.data('handsontable'); 
      if (mycheckbox.checked) { 
       hot.updateSettings({ 
        hiddenColumns: { 
         columns: [0], 
         indicators: true 
        } 
       }) 
      } 
      else { 
       hot.updateSettings({ 
        hiddenColumns: { 
         columns: [0,1,2], 
         indicators: true 
        } 
       }) 
      } 
     }); 

のように見えますが、私は、ページロードイベントでこのコードを使用したい場合、またはHandsontableロードする方法です。

答えて

0

Handsontableイベントフックを使用してください。 afterLoadDataフックは、新しいデータがデータソース配列にロードされた後にコールバックを実行します。これが適切でない場合は、前にinitで述べたように、フックイベントを適切なフックイベントに置き換えることができます。

はそうあなただけの、その関数を作ることができafterLoadDataフックのコールバック

var example = document.getElementById('example'); 
var checkbox = document.getElementById('checkbox'); 

// use event hook and add custom callback 
// this will hide column 2 if checkbox is initially checked on 
// page load 
Handsontable.hooks.add("afterLoadData", function() { 

    if (checkbox.checked) { 
     this.updateSettings({ 
     hiddenColumns: { 
      columns: [2], 
      indicators: true 
     } 
     }) 
    } else { 
     this.updateSettings({ 
     hiddenColumns: { 
      columns: [1], 
      indicators: true 
     } 
     }) 
    } 

}); 

は、ここで私はそれをページを呼び出す必要があり、アクション

+0

におけるそれのjsbinですか? – Naeem

+0

あなたがHandsontableを定義するのと同じ場所 –

+0

いくつかの例を見せてくれますか?また、チェックボックスの値をチェックする方法 – Naeem