2017-04-04 10 views
1

煎茶のツリーパネルのチェックボックスに問題が発生しました。 子ノードのチェックボックスをオンにすると、親ノードのチェックボックスが自動的にオンになります。 現在のところ、チェックされた子ノードでもチェックする必要があります。画像の下煎茶のツリーパネルのチェックボックス

何が起こっているかを示してい..

enter image description here

答えて

0

は、チェックボックスが含まれているあなたのコラムにリスナーを追加します。上/チェックを外し親ノードを確認するには、この機能を使用すると

columns: [ 
    { 
     xtype: 'checkcolumn', 
     listeners: { 
      checkchange: 'onCheckcolumnCheckChange' 
     } 
    }, 
    // .... 
] 

チェックイベント

onCheckcolumnCheckChange: function(checkcolumn, rowIndex, checked, eOpts) { 
    var view = this.getView(); 
    var item = this.getStore().data.items[rowIndex]; 
    var columnName = checkcolumn.dataIndex; 

    // User unchecked a row: refresh the view 
    if(!checked){ 
     view.refresh(); 
     return; 
    } 

    // User checked a row: unselect all parents 
    var parentNode = item.parentNode; 
    while(typeof parentNode != 'undefined' && parentNode !== null && !parentNode.data.root){ 
     parentNode.set(columnName, false); 
     parentNode = parentNode.parentNode; 
    } 

    // Then uncheck all childs (recusif) 
    (function doChild(children){ 
     if(typeof children == 'undefined' || children === null || children.length <= 0) 
      return; 

     for(var i=0; i<children.length; i++){ 
      children[i].set(columnName, false); 
      doChild(children[i].childNodes); // <= recursivity 
     } 
    })(item.childNodes); 

    view.refresh(); 
} 
+0

実際に私はツリーパネルを取得しています私は木のパネルを形成するために使用されているajax呼び出しとその戻りJsonデータを使用して、データベースからの親と子のデータ。だから私はあなたの機能を配置する必要がありますとコード? –

+0

@VikasHire 'defaultListenerScope:true'プロパティを含むメインコンテナに関数を置きます。 –

+0

このエラーが発生しました 未知の型エラー:this.getViewは関数ではありません –

関連する問題