0

我有一个包含表格 dx-data-grid 的组件。我想在某个列设置为 FALSE 可见,但只有一次。问题是在我执行代码中的函数后呈现了我的控件:

我隐藏一些列的功能:

for (var i = 0, len = this.listedesdossiers.instance.columnCount(); i < len; i++) 
{
    if (this.Liste_Colonnes_A_Afficher.find(colonne=>
      colonne==this.listedesdossiers.instance.columnOption(i).dataField)==undefined )
    {
      this.listedesdossiers.instance.columnOption(i, "visible", false)  
    }
  }
<dx-data-grid
    #listedesdossiers
    id="grid"
    [dataSource]="Liste_dossiers"
    [columnWidth]="150"
    [showBorders]="true"
    [showColumnLines]="true"
    [showRowLines]="true"
    [rowAlternationEnabled]="true"
    height="100%"
    [allowColumnResizing]="true"
    noDataText="Pas de dossiers"
    (onContentReady)="contentReady()"
     (onInitialized)="Initialized($event)"
    >

例如,如果我选择 ngAfterViewChecked 事件,它会隐藏我的列,但就像我们更改视图时它会被多次加载一样,它会一直重新启动该功能。

如果我选择 ngOnInit,则控件的实例(逻辑)未定义。如果我选择 datagrid 的 onContentReady 事件,它会多次执行该函数,并重新初始化列的可见性。如果我选择datagrid的onInitialized事件,则控件的实例(逻辑)未定义。

你能帮我吗?

对不起我糟糕的英语

4

1 回答 1

0

为了只调用一个方法,ngAfterViewChecked您可以在 .ts 文件中使用布尔值作为标志。如:

if (this.notHidden) {
  this.yourHideFunction();
  this.notHidden = true;
  }

于 2020-04-20T07:14:31.643 回答