Blazor Hierarchical Grid 行のピン固定

    Blazor Hierarchical Grid の Ignite UI for Blazor 行ピン固定機能を使用すると、1 つまたは複数の行をグリッドの上部または下部にピン固定できます。行ピン固定を使用すると、エンドユーザーは特定の順序で行をピン固定し、IgbHierarchicalGrid を垂直にスクロールしても常に表示される特別な領域に行を複製できます。Blazor Hierarchical Grid には組み込みの行ピン固定 UI が含まれており、Hierarchical Grid のコンテキストで IgbActionStrip コンポーネントを初期化することで有効になります。その他、カスタム UI を定義し、行のピン固定 API を介して行のピン固定状態を変更できます。

    Blazor Hierarchical Grid 行ピン固定の例

    EXAMPLE
    MODULES
    DATA
    RAZOR
    JS
    CSS

    このサンプルが気に入りましたか? 完全な Ignite UI for Blazorツールキットにアクセスして、すばやく独自のアプリの作成を開始します。無料でダウンロードできます。

    行のピン固定 UI

    組み込みの行ピン固定 UI は、IgbGridPinningActions コンポーネントと IgbActionStrip コンポーネントを追加することで有効になります。アクション ストリップは、行にカーソルを合わせると自動的に表示され、表示されている行の状態に基づいてピン固定またはピン固定解除ボタンのアイコンが表示されます。ピン固定された行のコピーをビューにスクロールする追加のアクションがピン固定された行ごとに表示されます。

        <IgbHierarchicalGrid Width="100%"  
                 Height="100%"
                 PrimaryKey="Key"
                 AutoGenerate=true
                 Data=northwindEmployees
                 RowEditable=true>
            <IgbColumn Field="ID" Editable=false></IgbColumn>
            <IgbColumn Field="ContactName"></IgbColumn>
            <IgbColumn Field="ContactTitle"></IgbColumn>
            <IgbColumn Field="City" Sortable=true></IgbColumn>
            <IgbColumn Field="CompanyName" Sortable=true></IgbColumn>
            <IgbColumn Field="Fax" Sortable=true></IgbColumn>
            <IgbColumn Field="Address" Sortable=true></IgbColumn>
            <IgbColumn Field="PostalCode" Sortable=true></IgbColumn>
            <IgbColumn Field="Country" Sortable=true></IgbColumn>
            <IgbColumn Field="Phone" Sortable=true></IgbColumn>
            <IgbActionStrip>
                <IgbGridPinningActions></IgbGridPinningActions>
                <IgbGridEditingActions></IgbGridEditingActions>
            </IgbActionStrip>
        </IgbHierarchicalGrid>
    razor

    行のピン固定 API

    行のピン固定は RowPinned 入力によって制御されます。デフォルトでピン固定行は IgbHierarchicalGrid の上側に固定して描画され、IgbHierarchicalGrid 本体のピン固定されていない行は垂直スクロールされます。

    this.Grid.PinRowAsync("ALFKI", 0);
    razor

    IgbHierarchicalGridPinRow または UnpinRow メソッドを使用して ID によって行をピン固定またはピン固定解除できます。

    this.Grid.PinRowAsync("ALFKI", 0);
    this.Grid.UnpinRowAsync("ALFKI");
    razor

    注: 行の ID は、グリッドの PrimaryKey またはレコード インスタンス自体によって定義される主キー値です。両方のメソッドは操作に成功したかどうかを示すブール値を返します。よくある失敗の原因に行がすでにその状態になっていることがあります。

    行は、最後にピンされた行の下にピン固定されます。ピン固定行の順序を変更するには、RowPinning イベントでイベント引数の InsertAtIndex プロパティを適切な位置インデックスに変更します。

    <IgbHierarchicalGrid Width="100%"
                 Id="grid"
                 RowPinningScript="rowPinningHandler"
                 Height="100%"
                 PrimaryKey="Key"
                 AutoGenerate="true"
                 Data="northwindEmployees">
    </IgbHierarchicalGrid>
    razor
    *** In JavaScript ***
    
    function rowPinningHandler(event) {
        event.detail.insertAtIndex = 0;
    }
    
    igRegisterScript("rowPinningHandler", rowPinningHandler, false);
    razor

    ピン固定の位置

    Pinning 設定オプションを使用して、行のピン固定の位置を変更できます。ピン固定の位置を Top または Bottom のいずれかに設定できます。 Bottom に設定すると、行がピン固定されていない行の後に、グリッドの一番下にレンダリングされます。ピン固定されていない行は垂直にスクロールできますが、ピン固定された行は下側に固定されます。

        <IgbHierarchicalGrid Id="grid"
                Width="100%"
                Height="100%"
                Pinning=PinningConfig
                PrimaryKey="Key"
                AutoGenerate=true
                Data=northwindEmployees>
        </IgbHierarchicalGrid>
        @code {
            public string Key = "ID";
            private Northwind.EmployeesType[] northwindEmployees = Array.Empty<Northwind.EmployeesType>();
            public IgbPinningConfig PinningConfig = new IgbPinningConfig()
            {
                Rows = RowPinningPosition.Bottom
            };
            protected override async Task OnInitializedAsync()
            {
                northwindEmployees = await this.northwindService.GetEmployees() ?? northwindEmployees;
            }
        }
    razor

    カスタム行ピン固定 UI

    カスタム UI を定義し、関連する API を介して行のピン状態を変更できます。

    アイコン付きの追加の列による

    アクション ストリップの代わりに、すべての行にピンのアイコンを表示し、エンドユーザーが特定の行のピン状態をクリックして変更できます。 カスタム アイコンを含むセル テンプレートの列を追加することで実行できます。

    <IgbColumn Width="70px" BodyTemplateScript="WebHierarchicalGridRowPinCellTemplate"/>
    
    // In Javascript
    
    igRegisterScript("WebHierarchicalGridRowPinCellTemplate", (ctx) => {
        var html = window.igTemplating.html;
        window.toggleRowPin = function toggleRowPin(row) {
            row.pinned = !row.pinned;
        }
    	const row = ctx.cell.row;
        return html`<div>
        <span onpointerdown='toggleRowPin("${row}")'>📌</span>
    </div>`;
    }, false);
    razor

    デモ

    EXAMPLE
    MODULES
    DATA
    RAZOR
    JS
    CSS

    行ピン固定の制限

    • データソースに存在するレコードのみをピン固定できます。
    • 行のピン固定状態は Excel にエクスポートされません。グリッドは行のピン固定が適用されずにエクスポートされます。
    • グリッドのスクロール可能領域におけるピン固定行のコピーは、ピン固定行が存在する状態で他のグリッド機能が動作するのに不可欠な役割を果たします。そのため、その生成を無効化または削除することはできません。
    • 行選択 は 行 ID のみで動作するため、ピン固定行を選択するとそのコピーも選択されます (逆も同様)。さらに、ピン固定領域での範囲選択 (Shift + クリックにより) は、スクロール可能な領域で行を範囲選択する場合と同じように機能します。結果として、間にある行はピン固定されていなくてもすべて選択されます。API を 介して選択した行を取得すると、選択した各レコードの単一のインスタンスのみを返します。

    スタイル設定

    定義済みのテーマに加えて、利用可能な CSS プロパティのいくつかを設定することで、グリッドをさらにカスタマイズできます。 一部の色を変更したい場合は、最初にグリッドのクラスを設定する必要があります。

    <IgbHierarchicalGrid class="grid"></IgbHierarchicalGrid>
    razor

    次に、そのクラスに関連する CSS プロパティを設定します。

    .grid {
        --ig-grid-pinned-border-width: 5px;
        --ig-grid-pinned-border-style: double;
        --ig-grid-pinned-border-color: #FFCD0F;
        --ig-grid-cell-active-border-color: #FFCD0F;
    }
    css

    デモ

    EXAMPLE
    MODULES
    DATA
    RAZOR
    JS
    CSS

    API リファレンス

    その他のリソース

    コミュニティに参加して新しいアイデアをご提案ください。