如何将 dx-data-grid 及其工具包装到另一个组件中并使其成为控制器?
How to wrap dx-data-grid and the it's tools into another component and make it controller?
我们正在用 devexpress.com 开发一个 angular 应用程序,我想用 dx-data-grid 制作 'my-grid' 控制器,我想包装 dx-data-网格工具进入我的但是有问题,你能帮我解决吗?
dx-data-grid.component.html
<dx-data-grid id="gridContainer"
[dataSource]="dataSource"
[showBorders]="true"
[allowColumnResizing]="true"
[columnAutoWidth]="true"
[allowColumnReordering]="true">
<!-- filter -->
<dxo-filter-row [visible]="true"></dxo-filter-row>
<dxo-header-filter [visible]="true"></dxo-header-filter>
<!-- column chooser -->
<dxo-column-chooser [enabled]="true"></dxo-column-chooser>
**<!-- COLUMN WILL APPEAR TO HEAR -->**
<!-- summary -->
<dxo-summary>
<dxi-total-item column="branchId" summaryType="count"></dxi-total-item>
<dxi-total-item column="docKind" summaryType="sum">
<!--<dxo-value-format type="decimal" [precision]="2"></dxo-value-format>-->
</dxi-total-item>
</dxo-summary>
<!-- pagination -->
<dxo-paging [pageSize]="10"></dxo-paging>
<dxo-pager [showPageSizeSelector]="true" [allowedPageSizes]="false" [showInfo]="true">
</dxo-pager>
</dx-data-grid>
my-grid.component.html
<my-grid [dataSource]="dataSource"
[showBorders]="true"
[allowColumnResizing]="true"
[columnAutoWidth]="true"
[allowColumnReordering]="true">
<!-- columns -->
<dxi-column dataField="Product_ID"></dxi-column>
<dxi-column dataField="Product_Name" [width]="250"></dxi-column>
<dxi-column dataField="Product_Cost" caption="Cost" dataType="number" format="currency"></dxi-column>
<dxi-column dataField="Product_Sale_Price" caption="Sale Price" dataType="number" format="currency"></dxi-column>
<dxi-column dataField="Product_Retail_Price" caption="Retail Price" dataType="number" format="currency"></dxi-column>
<dxi-column dataField="Product_Current_Inventory" caption="Inventory"></dxi-column>
</my-grid>
我可以输入 dx-data-grid 选项,但 dxi-clumns
我不能。
my-grid.component.ts
@Input()
public dataSource: string;
@Input()
public columnAutoWidth: boolean;
@Input()
public allowColumnReordering: boolean;
@Input()
public showBorders: boolean;
@Input()
public allowColumnResizing: boolean;
@ViewChild(DxDataGridComponent) dxDataGrid: DxDataGridComponent;
ngAfterViewInit() {
this.dxDataGrid.dataSource = this.dataSource;
this.dxDataGrid.columnAutoWidth = this.columnAutoWidth;
this.dxDataGrid.allowColumnReordering = this.allowColumnReordering;
this.dxDataGrid.showBorders = this.showBorders;
this.dxDataGrid.allowColumnResizing = this.allowColumnResizing;
}
所以我需要在我的网格中输入 dxi-columns
,在另一种情况下可能 dxo-paging
等等。
谢谢你
这是我的解决方案。
my-grid.zip
我们正在用 devexpress.com 开发一个 angular 应用程序,我想用 dx-data-grid 制作 'my-grid' 控制器,我想包装 dx-data-网格工具进入我的但是有问题,你能帮我解决吗?
dx-data-grid.component.html
<dx-data-grid id="gridContainer"
[dataSource]="dataSource"
[showBorders]="true"
[allowColumnResizing]="true"
[columnAutoWidth]="true"
[allowColumnReordering]="true">
<!-- filter -->
<dxo-filter-row [visible]="true"></dxo-filter-row>
<dxo-header-filter [visible]="true"></dxo-header-filter>
<!-- column chooser -->
<dxo-column-chooser [enabled]="true"></dxo-column-chooser>
**<!-- COLUMN WILL APPEAR TO HEAR -->**
<!-- summary -->
<dxo-summary>
<dxi-total-item column="branchId" summaryType="count"></dxi-total-item>
<dxi-total-item column="docKind" summaryType="sum">
<!--<dxo-value-format type="decimal" [precision]="2"></dxo-value-format>-->
</dxi-total-item>
</dxo-summary>
<!-- pagination -->
<dxo-paging [pageSize]="10"></dxo-paging>
<dxo-pager [showPageSizeSelector]="true" [allowedPageSizes]="false" [showInfo]="true">
</dxo-pager>
</dx-data-grid>
my-grid.component.html
<my-grid [dataSource]="dataSource"
[showBorders]="true"
[allowColumnResizing]="true"
[columnAutoWidth]="true"
[allowColumnReordering]="true">
<!-- columns -->
<dxi-column dataField="Product_ID"></dxi-column>
<dxi-column dataField="Product_Name" [width]="250"></dxi-column>
<dxi-column dataField="Product_Cost" caption="Cost" dataType="number" format="currency"></dxi-column>
<dxi-column dataField="Product_Sale_Price" caption="Sale Price" dataType="number" format="currency"></dxi-column>
<dxi-column dataField="Product_Retail_Price" caption="Retail Price" dataType="number" format="currency"></dxi-column>
<dxi-column dataField="Product_Current_Inventory" caption="Inventory"></dxi-column>
</my-grid>
我可以输入 dx-data-grid 选项,但 dxi-clumns
我不能。
my-grid.component.ts
@Input()
public dataSource: string;
@Input()
public columnAutoWidth: boolean;
@Input()
public allowColumnReordering: boolean;
@Input()
public showBorders: boolean;
@Input()
public allowColumnResizing: boolean;
@ViewChild(DxDataGridComponent) dxDataGrid: DxDataGridComponent;
ngAfterViewInit() {
this.dxDataGrid.dataSource = this.dataSource;
this.dxDataGrid.columnAutoWidth = this.columnAutoWidth;
this.dxDataGrid.allowColumnReordering = this.allowColumnReordering;
this.dxDataGrid.showBorders = this.showBorders;
this.dxDataGrid.allowColumnResizing = this.allowColumnResizing;
}
所以我需要在我的网格中输入 dxi-columns
,在另一种情况下可能 dxo-paging
等等。
谢谢你
这是我的解决方案。 my-grid.zip