Web Components Tamaño de cuadrícula jerárquica
La función Tamaño de Ignite UI for Web Components en Web Components cuadrícula jerárquica permite a los usuarios controlar el espaciado y el diseño de los datos dentro de la IgcHierarchicalGridComponent
. Al cambiar--ig-size
, puede mejorar significativamente la experiencia del usuario al interactuar con grandes cantidades de contenido. Pueden elegir entre tres opciones de tamaño:
--ig-size-large
--ig-size-medium
--ig-size-small
Web Components Hierarchical Grid Size Example
Usage
Como puede ver en la demostración anterior, ofrece IgcHierarchicalGridComponent
tres opciones de tamaño: pequeño, mediano y grande. El siguiente fragmento de código muestra cómo establecer--ig-size
en línea o parte de una clase CSS:
.gridSize {
--ig-size: var(--ig-size-medium);
}
<igc-hierarchical-grid id="grid" class="gridSize">
</igc-hierarchical-grid>
Y ahora veamos en detalle cómo se refleja cada opción en el IgcHierarchicalGridComponent
componente. Al cambiar entre diferentes opciones de tamaño, se cambiará la altura de cada IgcHierarchicalGridComponent
elemento y los rellenos correspondientes. Además, si desea aplicar una columna width
personalizada, tenga en cuenta el hecho de que debe ser más grande que la suma del relleno izquierdo y derecho.
- large: este es el tamaño predeterminado
IgcHierarchicalGridComponent
con la intensidad más baja y la altura de fila igual a50px
. Los acolchados izquierdo y derecho son24px
; La columnawidth
mínima es80px
; - Medio: este es el tamaño medio intenso con
40px
la altura de la fila. Los acolchados izquierdo y derecho son16px
; La columnawidth
mínima es64px
; - Pequeño: este es el tamaño con mayor intensidad y
32px
altura de fila. Los acolchados izquierdo y derecho son12px
; La columnawidth
mínima es56px
;
[!Note] Please keep in mind that currently you can not override any of the sizes.
Continuemos ahora con nuestro ejemplo y veamos en acción cómo se aplica el--ig-size
. Primero agreguemos un botón que nos ayudará a cambiar entre cada tamaño:
<div class="size-chooser">
<igc-property-editor-panel
description-type="WebHierarchicalGrid"
is-horizontal="true"
is-wrapping-enabled="true"
name="PropertyEditor"
id="propertyEditor">
<igc-property-editor-property-description
name="SizeEditor"
id="SizeEditor"
label="Grid Size:"
value-type="EnumValue"
drop-down-names="Small, Medium, Large"
drop-down-values="Small, Medium, Large">
</igc-property-editor-property-description>
</igc-property-editor-panel>
</div>
Ahora podemos agregar el marcado.
<igc-hierarchical-grid id="grid" height="600px" width="100%" allow-filtering="true">
<igc-column field="CustomerID"></igc-column>
<igc-column field="CompanyName"></igc-column>
<igc-column field="ContactName"></igc-column>
<igc-column field="ContactTitle"></igc-column>
<igc-column field="Address"></igc-column>
<igc-column field="City"></igc-column>
<igc-column field="PostalCode"></igc-column>
<igc-column field="Country"></igc-column>
<igc-column field="Phone"></igc-column>
<igc-column field="Fax"></igc-column>
<igc-row-island key="Orders" auto-generate="false" >
<igc-column field="OrderID"></igc-column>
<igc-column field="EmployeeID"></igc-column>
<igc-column field="OrderDate"></igc-column>
<igc-column field="RequiredDate"></igc-column>
<igc-column field="ShippedDate"></igc-column>
<igc-column field="ShipVia"></igc-column>
<igc-column field="Freight"></igc-column>
<igc-column field="ShipName"></igc-column>
<igc-column field="ShipAddress"></igc-column>
<igc-column field="ShipCity"></igc-column>
<igc-column field="ShipPostalCode"></igc-column>
<igc-column field="ShipCountry"></igc-column>
<igc-row-island key="OrderDetails" auto-generate="false">
<igc-column field="ProductID"></igc-column>
<igc-column field="UnitPrice"></igc-column>
<igc-column field="Quantity"></igc-column>
<igc-column field="Discount"></igc-column>
</igc-row-island>
</igc-row-island>
</igc-hierarchical-grid>
Finalmente, proporcionemos la lógica necesaria para aplicar realmente el tamaño:
constructor() {
var propertyEditor = this.propertyEditor = document.getElementById('PropertyEditor') as IgcPropertyEditorPanelComponent;
var sizeEditor = this.sizeEditor = document.getElementById('SizeEditor') as IgcPropertyEditorPropertyDescriptionComponent;
var grid = this.grid = document.getElementById('grid') as IgcHierarchicalGrid;
propertyEditor.componentRenderer = this.renderer;
propertyEditor.target = this.grid;
this.webGridSetGridSize = this.webGridSetGridSize.bind(this);
sizeEditor.changed = this.webGridSetGridSize;
grid.data = this.data;
}
private _componentRenderer: ComponentRenderer = null;
public get renderer(): ComponentRenderer {
if (this._componentRenderer == null) {
this._componentRenderer = new ComponentRenderer();
var context = this._componentRenderer.context;
PropertyEditorPanelDescriptionModule.register(context);
WebGridDescriptionModule.register(context);
}
return this._componentRenderer;
}
public webGridSetGridSize(sender: any, args: IgcPropertyEditorPropertyDescriptionChangedEventArgs): void {
var newVal = (args.newValue as string).toLowerCase();
var grid = document.getElementById("grid");
grid.style.setProperty('--ig-size', `var(--ig-size-${newVal})`);
}
Otra opción que IgcHierarchicalGridComponent
le proporciona, para poder cambiar la altura de las filas en el IgcHierarchicalGridComponent
, es la propiedad rowHeight
. Así que veamos en acción cómo esta propiedad afecta el IgcHierarchicalGridComponent
diseño junto con el--ig-size
.
Por favor tenga en cuenta lo siguiente:
--ig-size
La variable CSS no tendrá ningún impacto en la altura de la fila si serowHeight
especifica.--ig-size
afectará a todos los demás elementos de la Cuadrícula Jerárquica, como se ha descrito anteriormente.
Ahora podemos extender nuestro ejemplo y agregar rowHeight
la propiedad a: IgcHierarchicalGridComponent
<igc-hierarchical-grid id="grid" class="gridSize" row-height="80px" width="100%" height="550px" allow-filtering="true">
</igc-hierarchical-grid>
API References
Nuestra comunidad es activa y siempre da la bienvenida a nuevas ideas.