La directiva igxGridState permite a los desarrolladores guardar y restaurar fácilmente el estado de la red. Cuando la directiva IgxGridState se aplica en la grilla, expone los métodos getState y setState que los desarrolladores pueden usar para lograr la persistencia del estado en cualquier escenario.
最速で機能豊富な Angular Data Grid は、ページング、ソート、フィルタリング、グループ化、PDF および Excel へのエクスポートなどの機能を提供します。究極のアプリ構築エクスペリエンスとデータ操作に必要なすべてが揃っています。
La directiva IgxGridState admite guardar y restaurar el estado de las siguientes funciones:
Sorting
Filtering
Advanced Filtering
Paging
Cell Selection
Row Selection
Column Selection
Row Pinning
Expansion
GroupBy
Columns
NUEVO: Los encabezados de varias columnas ahora son compatibles desde el primer momento
Orden de columnas
Propiedades de columna definidas por la interfaz IColumnState.
Las plantillas y funciones de las columnas se restauran utilizando código a nivel de aplicación; consulte la sección Restauración de columnas.
La directiva IgxGridState no se ocupa de las plantillas. Vaya a la sección Restaurar columna para ver cómo restaurar plantillas de columna.
Uso
getState: este método devuelve el estado de la cuadrícula en una cadena JSON serializada, por lo que los desarrolladores pueden simplemente tomarlo y guardarlo en cualquier almacenamiento de datos (base de datos, nube, almacenamiento local del navegador, etc.). El método acepta el primer parámetro opcional serialize, que determina si getState devolverá un objeto IGridState o una cadena JSON serializada. El desarrollador puede optar por obtener solo el estado de una determinada característica/características, pasando el nombre de la característica o una matriz con nombres de características como segundo argumento.
// get all features` state in a serialized JSON stringconst gridState = state.getState();
// get an `IGridState` object, containing all features original state objects, as returned by the grid public APIconst gridState: IGridState = state.getState(false);
// get the sorting and filtering expressionsconst sortingFilteringStates: IGridState = state.getState(false, ['sorting', 'filtering']);
typescript
setState: el método setState acepta la cadena JSON serializada o el objeto IGridState como argumento y restaurará el estado de cada característica encontrada en el objeto/cadena JSON.
options: el objeto options implementa la interfaz IGridStateOptions, es decir, para cada clave, que es el nombre de una determinada característica, existe el valor booleano que indica si se rastreará el estado de esta característica. El método getState no pondrá el estado de estas funciones en el valor devuelto y el método setState no restaurará el estado.
public options = { cellSelection: false; sorting: false; }
typescript
Las API de punto único, fáciles de usar, permiten lograr una funcionalidad de persistencia de estado completa en solo unas pocas líneas de código. Copie y pegue el código a continuación: guardará el estado de la cuadrícula en el objeto sessionStorage del navegador cada vez que el usuario abandone la página actual. Siempre que el usuario regrese a la página principal, se restaurará el estado de la cuadrícula. Ya no es necesario configurar esas complejas expresiones avanzadas de filtrado y clasificación cada vez para obtener los datos que desea: hágalo una vez y haga que el código siguiente haga el resto para sus usuarios:
IgxGridState no persistirá en las plantillas de columnas, formateadores de columnas, etc. de forma predeterminada (consulte limitations). La restauración de cualquiera de estos se puede lograr con código a nivel de aplicación. Vamos a mostrar cómo hacer esto para columnas con plantilla:
Defina una variable de referencia de plantilla (en el siguiente ejemplo es #activeTemplate) y asigne un controlador de eventos para el evento columnInit:
Consulte la vista de plantilla en el componente usando el decorador @ViewChild o @ViewChildren. En el controlador de eventos columnInit, asigne la plantilla a la propiedad bodyTemplate de la columna:
<divclass="grid__wrapper"><divclass="controls-holder"><divclass="switches"><buttonigxButton="contained" (click)="restoreGridState()"><igx-iconclass="btn-icon">restore</igx-icon><span>Restore</span></button><buttonigxButton="contained" (click)="saveGridState()"><igx-iconclass="btn-icon">save</igx-icon><span>Save</span></button><buttonigxButton="contained" (click)="resetGridState()"><igx-iconclass="btn-icon">clear</igx-icon><span>Reset</span></button><buttonigxButton="contained" [routerLink]="['../grid-about']"><igx-iconclass="btn-icon">forward</igx-icon><span>Leave</span></button><buttonigxButton="contained" (click)="clearStorage()"><igx-iconclass="btn-icon">delete</igx-icon><span>Clear</span></button><buttonigxButton="contained" (click)="reloadPage()"><igx-iconclass="btn-icon">refresh</igx-icon><span>Reload</span></button></div><divclass="switches"><ul><li>Clicking the SAVE button or leaving the page <a [routerLink]="['../grid-about']"><strong>here</strong></a> will save grid state to localStorage.</li><li>Use the control buttons to SAVE / RESTORE / RESET / DELETE / grid state or LEAVE the page.</li><li>Select/Deselect checkboxes to control saving / restoring feature state.</li></ul></div><divclass="switches"><divclass="control-item"><igx-checkbox [checked]="true" (change)="onChange($event, 'toggleAll')">All</igx-checkbox></div><divclass="control-item" *ngFor="let f of features"><igx-checkbox (change)="onChange($event, f.key)" [checked]="options[f.key]">
{{ f.shortName }}
</igx-checkbox></div></div></div><igx-grid [igxPreventDocumentScroll]="true" [id]="gridId" #grid1 [igxGridState]="options"width="98%"height="530px" [autoGenerate]="false" [moving]="true"
[data]="localData"
[primaryKey]="'EmployeeID'"
[rowEditable]="false"
[allowFiltering]="true"
[filterMode]="'excelStyleFilter'"
[allowAdvancedFiltering]="true"
[cellSelection]="'multiple'"
[rowSelection]="'none'"><igx-paginator></igx-paginator><igx-grid-toolbar><igx-grid-toolbar-actions><igx-grid-toolbar-hiding></igx-grid-toolbar-hiding><igx-grid-toolbar-pinning></igx-grid-toolbar-pinning></igx-grid-toolbar-actions></igx-grid-toolbar><igx-column *ngFor="let c of columns"
[sortable]="c.sortable"
[editable]="true"
[hasSummary]="c.hasSummary"
[filterable]="c.filterable"
[groupable]="c.groupable"
[field]="c.field"
[header]="c.header"
[dataType]="c.dataType"
[pinned]="c.pinned"
[hidden]="c.hidden"></igx-column></igx-grid></div>html
¿Te gusta esta muestra? Obtenga acceso a nuestro kit de herramientas de Ignite UI for Angular completo y comience a crear sus propias aplicaciones en minutos. Descárgalo gratis.
Restaurando estrategias
IgxGridState no persistirá ni en las operaciones remotas ni en las estrategias de dimensiones personalizadas (para obtener más información, consulte el ejemplo de Operaciones remotas de Grid) de forma predeterminada (consulte limitations). La restauración de cualquiera de estos se puede lograr con código a nivel de aplicación. IgxGridState expone un evento llamado stateParsed que se puede usar para modificar adicionalmente el estado de la cuadrícula antes de aplicarlo. Vamos a mostrar cómo hacer esto:
stateParsed solo se emite cuando usamos setState con un argumento de cadena.
Establezca una estrategia de clasificación personalizada y estrategias de dimensiones de filas y columnas personalizadas: