2017-11-01 5 views
0

Angular2アプリケーションでpx-data-tableを使用しています。 次のようにデータ・テーブルが使用される:ユーザーが複数の行を選択px-data-tableのすべての行のチェックを外す

<px-data-table #myTableRef [tableData]='tableDetails' language="en" (px-row-click)="selectedChanged($event)" (px-select-all-click)="selectAll($event)" sortable selectable show-column-chooser> 
    <px-data-table-column *ngFor="let header of headers" type="html" name="{{header.value}}" label="{{header.label}}" [disableHide]="header.disableHide" [hide]="!header.disableHide"> 
    </px-data-table-column> 
</px-data-table> 

。したがって、selectedChanged($ event)が起動され、複数の行が選択されます。今私は、選択された行をユーザーのやりとりではなくコードからチェックを外したいと思います。角度から

  1. 火災イベント 'PX-選択 - すべてのクリック':私は(動作しませんでした)以下の方法で行ってきました

    this.myTableRef.nativeElement.fire('px-select-all-click') 
    this.myTableRef.nativeElement.fire('px-select-all-click', this.myTableRef.nativeElement.selectedRows) 
    // also did a ChangeDetectorRef.detectChanges() after injection but it did not work. 
    
  2. ID「selectAllCheckboxでチェックボックスをオンにします"によって角度から:

    this.myTableRef.nativeElement.shadowRoot.querySelector('selectAllCheckBox') 
    this.myTableRef.nativeElement.querySelector('selectAllCheckbox') 
    //returns null in both cases so I can't do a .click() on it 
    
  3. 空selectedRows属性:

    this.myTableRef.nativeElement.selectedRows = []; 
    

3つの方法はすべて機能しません。 私はpx-data-table.htmlの中にインポートされたaha-table.htmlを探していて、便利な方法を見つけました:_setAllRows(e)_setAllRows(false)のすべての行を選択解除します。これだけが公開されている場合、またはAngularから呼び出すことができた場合は、選択した行のチェックを外すことで問題を解決できます。

解決方法はありますか。 _setAllRows(e)メソッドにアクセスし、px-data-tableコンポーネントの下にネスト成分であるaha-tableの方法であることを通知した後

答えて

0

Local DOM API用ポリマーマニュアルに従って容易です。

let tableRef = this.myTableRef.nativeElement; 
tableRef.$$('aha-table')._setAllRows(false); 

基本的に$$('selector')は、動的に作成されたノードの略語です。 aha-tableノードのリファレンスを取得したら、そのメソッドを呼び出すことができます。

関連する問題