2017-07-31 72 views
0

我在我的Angular应用程序下使用DevExtreme DataGrid小部件Angular:DevExtreme DataGrid状态存储

这里是我datGrid的观点:

<dx-data-grid 
    id="gridContainer" 
    [dataSource]="employees" 
    [allowColumnReordering]="true" 
    [allowColumnResizing]="true" 
    [columnAutoWidth]="true"> 
    <dxo-column-chooser [enabled]="true"></dxo-column-chooser> 
    <dxo-column-fixing [enabled]="true"></dxo-column-fixing> 
    <dxo-state-storing [enabled]="true" type="custom" savingTimeout="2000" [customSave]="tableStateSave" [customLoad]="tableStateLoad"></dxo-state-storing> 
    <dxi-column 
     caption="Employee" 
     [width]="230" 
     [fixed]="true" 
     [calculateCellValue]="calculateCellValue" 
    ></dxi-column> 
    <dxi-column dataField="BirthDate" dataType="date"></dxi-column> 
    <dxi-column dataField="HireDate" dataType="date"></dxi-column> 
    <dxi-column dataField="Position" alignment="right"></dxi-column> 
    <dxi-column dataField="Address" [width]="230"></dxi-column> 
    <dxi-column dataField="City"></dxi-column> 
    <dxi-column dataField="Zipcode" [visible]="false"></dxi-column> 
    <dxi-column dataField="HomePhone"></dxi-column> 
    <dxi-column dataField="MobilePhone"></dxi-column> 
    <dxi-column dataField="Skype"></dxi-column> 
    <dxi-column dataField="Email"></dxi-column> 
</dx-data-grid> 

正如你CAS在这一行看到:

<dxo-state-storing [enabled]="true" type="custom" savingTimeout="2000" [customSave]="tableStateSave" [customLoad]="tableStateLoad"></dxo-state-storing> 

我使用自定义的方法来加载(tableStateLoad)和保存(tableStateSave)我的DataGrid状态(列的位置和大小)。

状态保存是在每次更改操作后自动在2秒的超时内完成的。

但我想用一个简单的按钮用手动替换这个自动保存动作

建议?

+0

'grid.instance.state()'返回状态,你可以节省 – yurzui

+0

@yurzui不明白,怎么可能我用它 – firasKoubaa

+0

https://plnkr.co/edit/e6w27E8sjbx1elVHWbqv?p=preview – yurzui

回答

0

您可以使用dxo-state-storing指令不指定自定义的保存方法:

<dxo-state-storing [enabled]="true" type="custom" savingTimeout="2000" [customLoad]="tableStateLoad"></dxo-state-storing> 

或只需设置customSave属性为一个空函数。这样状态会自动加载,但不会以任何方式保存。然后,您实现一个按钮,该按钮具有您的自定义保存逻辑的点击处理程序,使用grid.instance.state()访问当前网格的状态。