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-size
CSS 変数は行の高さに影響しません。--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 リファレンス
コミュニティに参加して新しいアイデアをご提案ください。