Blazor Tree Grid サイズ
Ignite UI for Blazor の Blazor Tree Grid サイズ機能を使用すると、ユーザーは IgbTreeGrid 内のデータの間隔とレイアウトを制御できます。--ig-size を変更することで、大量のコンテンツを操作するときのユーザー エクスペリエンスを大幅に向上させることができます。次の 3 つのサイズ オプションから選択できます。
--ig-size-large--ig-size-medium--ig-size-small
Blazor Tree Grid サイズの例
使用方法
上記デモで示されるように、IgbTreeGrid は 3 つのサイズ オプション (small、medium、large) を提供します。以下のコード スニペットは、--ig-size をインラインまたは CSS クラスの一部として設定する方法を示しています。
.gridSize {
--ig-size: var(--ig-size-medium);
}
<IgbTreeGrid Class="gridSize" Data=northwindEmployees @ref=grid>
</IgbTreeGrid>
各オプションを IgbTreeGrid に反映する方法を紹介します。サイズ オプション間で切り替える際に各 IgbTreeGrid 要素の高さとそのパディングが変更されます。カスタムの列 Width を適用する場合、左右のパディングより大きくする必要があることに注意してください。
- large - これはデフォルトの
IgbTreeGridサイズです。サイズが最も低く、行の高さが50pxです。左と右のパディングが24pxで最小列Widthは80pxです。 - medium - 中サイズで、行の高さは
40pxです。左と右のパディングが16pxで最小列Widthは64pxです。 - small - 強度が最も高く、行の高さは
32pxです。左と右のパディングが12pxで最小列Widthは56pxです。
[!Note] 現在サイズはオーバーライドできません。
引き続きサンプルを使用して、--ig-size の適用方法について説明します。最初に各サイズを切り替えるボタンを追加します。
<div class="options vertical">
<IgbPropertyEditorPanel
DescriptionType="WebTreeGrid"
IsHorizontal="true"
IsWrappingEnabled="true"
Name="PropertyEditor"
@ref="propertyEditor">
<IgbPropertyEditorPropertyDescription
Name="SizeEditor"
@ref="sizeEditor"
Label="Grid Size:"
ValueType="PropertyEditorValueType.EnumValue"
DropDownNames="@(new string[] { "Small", "Medium", "Large" })"
DropDownValues="@(new string[] { "Small", "Medium", "Large" })"
ChangedScript="WebGridSetGridSize">
</IgbPropertyEditorPropertyDescription>
</IgbPropertyEditorPanel>
</div>
マークアップを追加します。
<IgbTreeGrid AutoGenerate="false" Name="treeGrid" @ref="treeGrid" Id="grid" Data="EmployeesFlatDetails" PrimaryKey="ID"
ForeignKey="ParentID" AllowFiltering="true">
<IgbColumn Field="Name" DataType="GridColumnDataType.String" Sortable="true" HasSummary="true" Width="200">
</IgbColumn>
<IgbColumnGroup Header="General Information">
<IgbColumn Field="HireDate" DataType="GridColumnDataType.Date" Sortable="true" HasSummary="true">
</IgbColumn>
<IgbColumnGroup Header="Personal Details">
<IgbColumn Field="ID" DataType="GridColumnDataType.Number" Filterable="false">
</IgbColumn>
<IgbColumn Field="Title" DataType="GridColumnDataType.String" Sortable="true" HasSummary="true">
</IgbColumn>
<IgbColumn Field="Age" DataType="GridColumnDataType.Number" Sortable="true" HasSummary="true" Filterable="false">
</IgbColumn>
</IgbColumnGroup>
</IgbColumnGroup>
<IgbColumnGroup Header="Address Information">
<IgbColumnGroup Header="Location">
<IgbColumn Field="Country" DataType="GridColumnDataType.String" Sortable="true" HasSummary="true">
</IgbColumn>
<IgbColumn Field="City" DataType="GridColumnDataType.String" Sortable="true" HasSummary="true">
</IgbColumn>
<IgbColumn Field="Address" DataType="GridColumnDataType.String" Sortable="true" HasSummary="true">
</IgbColumn>
</IgbColumnGroup>
<IgbColumnGroup Header="Contact Information">
<IgbColumn Field="Phone" DataType="GridColumnDataType.String" Sortable="true" HasSummary="true">
</IgbColumn>
<IgbColumn Field="Fax" DataType="GridColumnDataType.String" Sortable="true" HasSummary="true">
</IgbColumn>
<IgbColumn Field="PostalCode" DataType="GridColumnDataType.String" Sortable="true" HasSummary="true">
</IgbColumn>
</IgbColumnGroup>
</IgbColumnGroup>
</IgbTreeGrid>
最後にサイズを適用するためのロジックを実装します。
@code {
*** In JavaScript ***
igRegisterScript("WebGridSetGridSize", (sender, evtArgs) => {
var newVal = evtArgs.newValue.toLowerCase();
var grid = document.getElementById("grid");
grid.style.setProperty('--ig-size', `var(--ig-size-${newVal})`);
}, false);
}
IgbTreeGrid の行の高さを変更するその他のオプションに RowHeight プロパティがあります。このプロパティと --ig-size プションが IgbTreeGrid レイアウトにどのように動作に影響するかを以下で確認できます。
以下を確認してください。
RowHeightを指定した場合、--ig-sizeCSS 変数は行の高さに影響しません。--ig-sizeは、上記の理由により残りすべての Tree Grid 要素に影響します。
サンプル機能を拡張して RowHeight プロパティを IgbTreeGrid に追加します。
<IgbTreeGrid
@ref="grid"
Id="grid"
Class="gridSize"
Width="100%"
Height="100%"
AutoGenerate="true"
Data="northwindEmployees"
RowHeight="rowHeight">
</IgbTreeGrid>
@code {
private string rowHeight = "80px";
}
API リファレンス
コミュニティに参加して新しいアイデアをご提案ください。