React Tamaño de cuadrícula jerárquica
La función Tamaño de Ignite UI for React en React cuadrícula jerárquica permite a los usuarios controlar el espaciado y el diseño de los datos dentro de la IgrHierarchicalGrid
. 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
React Ejemplo de tamaño de cuadrícula jerárquica
¿Te gusta este ejemplo? Obtén acceso a nuestro kit de herramientas completo Ignite UI for React y comienza a crear tus propias aplicaciones en minutos. Descárgalo gratis.
Uso
Como puede ver en la demostración anterior, ofrece IgrHierarchicalGrid
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);
}
css
<IgrHierarchicalGrid id="grid" className="gridSize">
</IgrHierarchicalGrid>
tsx
Y ahora veamos en detalle cómo se refleja cada opción en el IgrHierarchicalGrid
componente. Al cambiar entre diferentes opciones de tamaño, se cambiará la altura de cada IgrHierarchicalGrid
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
IgrHierarchicalGrid
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
;
Tenga en cuenta que actualmente no puede anular ninguno de los tamaños.
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:
<IgrPropertyEditorPanel
ref={propertyEditorRef}
componentRenderer={renderer}
target={grid}
descriptionType="WebHierarchicalGrid"
isHorizontal="true"
isWrappingEnabled="true">
<IgrPropertyEditorPropertyDescription
name="SizeEditor"
label="Grid Size:"
valueType="EnumValue"
dropDownNames={["Small", "Medium", "Large"]}
dropDownValues={["Small", "Medium", "Large"]}
changed={this.webGridSetGridSize}>
</IgrPropertyEditorPropertyDescription>
</IgrPropertyEditorPanel>
tsx
Ahora podemos agregar el marcado.
<IgrHierarchicalGrid
autoGenerate="false"
ref={this.grid}
id="grid"
allowFiltering="true">
<IgrColumn field="CustomerID" dataType="String"></IgrColumn>
<IgrColumn field="CompanyName" dataType="String"></IgrColumn>
<IgrColumn field="ContactName" dataType="String"></IgrColumn>
<IgrColumn field="Address" dataType="String"></IgrColumn>
<IgrColumn field="City" dataType="String"></IgrColumn>
<IgrColumn field="PostalCode" dataType="String"></IgrColumn>
<IgrColumn field="Country" dataType="String"></IgrColumn>
<IgrColumn field="Phone" dataType="String"></IgrColumn>
<IgrColumn field="Fax" dataType="String"></IgrColumn>
<IgrRowIsland childDataKey="Orders" autoGenerate="false">
<IgrColumn field="OrderID" dataType="Number"></IgrColumn>
<IgrColumn field="EmployeeID" dataType="Number"></IgrColumn>
<IgrColumn field="OrderDate" dataType="Date"></IgrColumn>
<IgrColumn field="RequiredDate" dataType="Date"></IgrColumn>
<IgrColumn field="ShippedDate" dataType="Date"></IgrColumn>
<IgrColumn field="ShipVia" dataType="Number"></IgrColumn>
<IgrColumn field="Freight" dataType="Number"></IgrColumn>
<IgrColumn field="ShipName" dataType="String"></IgrColumn>
<IgrColumn field="ShipAddress" dataType="String"></IgrColumn>
<IgrColumn field="ShipCity" dataType="String"></IgrColumn>
<IgrColumn field="ShipPostalCode" dataType="String"></IgrColumn>
<IgrColumn field="ShipCountry" dataType="String"></IgrColumn>
<IgrRowIsland childDataKey="OrderDetails" autoGenerate="false">
<IgrColumn field="ProductID" dataType="Number"></IgrColumn>
<IgrColumn field="UnitPrice" dataType="Number"></IgrColumn>
<IgrColumn field="Quantity" dataType="Number"></IgrColumn>
<IgrColumn field="Discount" dataType="Number"></IgrColumn>
</IgrRowIsland>
</IgrRowIsland>
</IgrHierarchicalGrid>
tsx
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: IgrHierarchicalGrid
private gridRef(r: IgrHierarchicalGrid) {
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})`);
}
tsx
Otra opción que IgrHierarchicalGrid
le proporciona, para poder cambiar la altura de las filas en el IgrHierarchicalGrid
, es la propiedad rowHeight
. Así que veamos en acción cómo esta propiedad afecta el IgrHierarchicalGrid
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: IgrHierarchicalGrid
<IgrHierarchicalGrid id="grid" className="gridSize" rowHeight="80px" width="100%" height="550px" allowFiltering="true">
</IgrHierarchicalGrid>
tsx
Referencias de API
Nuestra comunidad es activa y siempre da la bienvenida a nuevas ideas.