Web Components Hierarchical Grid サイズ
Ignite UI for Web Components の Web Components Hierarchical Grid サイズ機能を使用すると、ユーザーは IgcHierarchicalGridComponent
内のデータの間隔とレイアウトを制御できます。--ig-size
を変更することで、大量のコンテンツを操作するときのユーザー エクスペリエンスを大幅に向上させることができます。次の 3 つのサイズ オプションから選択できます。
--ig-size-large
--ig-size-medium
--ig-size-small
Web Components Hierarchical Grid サイズの例
使用方法
上記デモで示されるように、IgcHierarchicalGridComponent
は 3 つのサイズ オプション (small、medium、large) を提供します。以下のコード スニペットは、--ig-size
をインラインまたは CSS クラスの一部として設定する方法を示しています。
.gridSize {
--ig-size: var(--ig-size-medium);
}
<igc-hierarchical-grid id="grid" class="gridSize">
</igc-hierarchical-grid>
各オプションを IgcHierarchicalGridComponent
に反映する方法を紹介します。サイズ オプション間で切り替える際に各 IgcHierarchicalGridComponent
要素の高さとそのパディングが変更されます。カスタムの列 width
を適用する場合、左右のパディングより大きくする必要があることに注意してください。
- large - これはデフォルトの
IgcHierarchicalGridComponent
サイズです。サイズが最も低く、行の高さが50px
です。左と右のパディングが24px
で最小列width
は80px
です。 - medium - 中サイズで、行の高さは
40px
です。左と右のパディングが16px
で最小列width
は64px
です。 - small - 強度が最も高く、行の高さは
32px
です。左と右のパディングが12px
で最小列width
は56px
です。
[!Note] 現在サイズはオーバーライドできません。
引き続きサンプルを使用して、--ig-size
の適用方法について説明します。最初に各サイズを切り替えるボタンを追加します。
<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>
マークアップを追加します。
<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>
最後にサイズを適用するためのロジックを実装します。
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})`);
}
IgcHierarchicalGridComponent
の行の高さを変更するその他のオプションに rowHeight
プロパティがあります。このプロパティと --ig-size
プションが IgcHierarchicalGridComponent
レイアウトにどのように動作に影響するかを以下で確認できます。
以下を確認してください。
rowHeight
を指定した場合、--ig-size
CSS 変数は行の高さに影響しません。--ig-size
は、上記の理由により残りすべての Hierarchical Grid 要素に影響します。
サンプル機能を拡張して rowHeight
プロパティを IgcHierarchicalGridComponent
に追加します。
<igc-hierarchical-grid id="grid" class="gridSize" row-height="80px" width="100%" height="550px" allow-filtering="true">
</igc-hierarchical-grid>
API リファレンス
コミュニティに参加して新しいアイデアをご提案ください。