React Tamaño de la cuadrícula del árbol
La función Ignite UI for React Tamaño en React Tree Grid permite a los usuarios controlar el espaciado y la disposición de los datos dentro de laIgrTreeGrid. Al cambiar--ig-size, puedes mejorar significativamente la experiencia del usuario al interactuar con grandes cantidades de contenido. Pueden elegir entre tres opciones de tallas:
--ig-size-large--ig-size-medium--ig-size-small
React Tree Grid Size Example
Usage
Como puedes ver en la demo anterior, ofreceIgrTreeGrid tres opciones de tamaño: pequeño, mediano y grande. El fragmento de código a continuación muestra cómo establecer--ig-size una clase en línea o parte de una clase CSS:
.gridSize {
--ig-size: var(--ig-size-medium);
}
<IgrTreeGrid className="gridSize"></IgrTreeGrid>
Y ahora veamos en detalle cómo cada opción refleja elIgrTreeGrid componente. Cuando cambias entre diferentes opciones de tamaño, la altura de cadaIgrTreeGrid elemento y los rellenos correspondientes se modifican. Además, si quieres aplicar columnaswidth personalizadas, por favor considera que debe ser mayor que la suma del relleno izquierdo y derecho:
- grande: este es el tamaño por defecto
IgrTreeGridcon la intensidad más baja y la altura de fila iguales a.50pxLos acolchones izquierdo y derecho son24px; La columnawidthmínima es80px; - Media: es el tamaño medio intenso con
40pxaltura de fila. Los acolchones izquierdo y derecho son16px; La columnawidthmínima es64px; - Pequeña: es la talla con mayor intensidad y
32pxaltura de fila. Los acolchones izquierdo y derecho son12px; La columnawidthmínima es56px;
[!Note] Please keep in mind that currently you can not override any of the sizes.
Ahora continuemos con nuestra muestra y veamos en acción cómo se aplica.--ig-size Primero añadimos un botón que nos ayudará a cambiar entre cada tamaño:
<IgrPropertyEditorPanel
ref={propertyEditorRef}
componentRenderer={renderer}
target={grid}
descriptionType="WebTreeGrid"
isHorizontal={true}
isWrappingEnabled={true}>
<IgrPropertyEditorPropertyDescription
name="SizeEditor"
label="Grid Size:"
valueType="EnumValue"
dropDownNames={["Small", "Medium", "Large"]}
dropDownValues={["Small", "Medium", "Large"]}
changed={webGridSetGridSize}>
</IgrPropertyEditorPropertyDescription>
</IgrPropertyEditorPanel>
Ahora podemos agregar el marcado.
<IgrTreeGrid autoGenerate={false} ref={treeGridRef} data={employeesFlatDetails} primaryKey="ID" foreignKey="ParentID" allowFiltering={true}>
<IgrColumn field="Name" dataType="string" sortable={true} hasSummary={true} width="200"></IgrColumn>
<IgrColumnGroup header="General Information">
<IgrColumn field="HireDate" dataType="date" sortable={true} hasSummary={true}></IgrColumn>
<IgrColumnGroup header="Personal Details">
<IgrColumn field="ID" dataType="number" filterable={false}></IgrColumn>
<IgrColumn field="Title" dataType="string" sortable={true} hasSummary={true}></IgrColumn>
<IgrColumn field="Age" dataType="number" sortable={true} hasSummary={true} filterable={false}></IgrColumn>
</IgrColumnGroup>
</IgrColumnGroup>
<IgrColumnGroup header="Address Information">
<IgrColumnGroup header="Location">
<IgrColumn field="Country" dataType="string" sortable={true} hasSummary={true}></IgrColumn>
<IgrColumn field="City" dataType="string" sortable={true} hasSummary={true}></IgrColumn>
<IgrColumn field="Address" dataType="string" sortable={true} hasSummary={true}></IgrColumn>
</IgrColumnGroup>
<IgrColumnGroup header="Contact Information">
<IgrColumn field="Phone" dataType="string" sortable={true} hasSummary={true}></IgrColumn>
<IgrColumn field="Fax" dataType="string" sortable={true} hasSummary={true}></IgrColumn>
<IgrColumn field="PostalCode" dataType="string" sortable={true} hasSummary={true}></IgrColumn>
</IgrColumnGroup>
</IgrColumnGroup>
</IgrTreeGrid>
Finalmente, proporcionemos la lógica necesaria para aplicar realmente el tamaño:
private propertyEditor: IgrPropertyEditorPanel
private propertyEditorRef(r: IgrPropertyEditorPanel) {
this.propertyEditor = r;
this.setState({});
}
private sizeEditor: IgrPropertyEditorPropertyDescription
private grid: IgrTreeGrid
private gridRef(r: IgrTreeGrid) {
this.grid = r;
this.setState({});
}
constructor(props: any) {
super(props);
this.propertyEditorRef = this.propertyEditorRef.bind(this);
this.webGridSetGridSize = this.webGridSetGridSize.bind(this);
this.gridRef = this.gridRef.bind(this);
}
private _componentRenderer: ComponentRenderer = null;
public get renderer(): ComponentRenderer {
if (this._componentRenderer == null) {
this._componentRenderer = new ComponentRenderer();
var context = this._componentRenderer.context;
PropertyEditorPanelDescriptionModule.register(context);
WebHierarchicalGridDescriptionModule.register(context);
}
return this._componentRenderer;
}
public webGridSetGridSize(sender: any, args: IgrPropertyEditorPropertyDescriptionChangedEventArgs): 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 queIgrTreeGrid te permite cambiar la altura de las filasIgrTreeGrid es la propiedadrowHeight. Así que veamos en acción cómo esta propiedad afecta alIgrTreeGrid diseño junto con el--ig-size.
Por favor tenga en cuenta lo siguiente:
--ig-sizeLa variable CSS no tendrá impacto en la altura de la fila si serowHeightespecifica.--ig-sizeafectará a todos los demás elementos de la Red del Árbol, como se ha descrito anteriormente.
Ahora podemos ampliar nuestra muestra y añadirrowHeight propiedades a:IgrTreeGrid
<IgrTreeGrid className="gridSize" rowHeight="80px" width="100%" height="550px" allowFiltering={true}></IgrTreeGrid>
API References
Nuestra comunidad es activa y siempre da la bienvenida a nuevas ideas.