Ignite UI for Blazor のグリッドコンポーネント、IgbGrid では、セルを選択した状態で、キーボードから Ctrl + C または ⌘ Command + C を押すことで、選択されたセルの内容をクリップボードにコピーすることができます。

例えば以下のように表示・セル選択されている IgbGrid にて、Ctrl + C または ⌘ Command + C を押すと、

以下の内容のテキストが、クリップボードにコピーされます。

氏名	年齢
ボブ	30
アリス	25

このとき、既定では上記のとおり列ヘッダの内容も一緒にコピーされます。しかし場合によっては、列ヘッダは含めず、選択したセルの内容だけコピーされるようにしたい、という要件があるかもしれません。

そのような場合は以下の手順で、IgbGrid からクリップボードにコピーされる内容から、列ヘッダの内容を除外することができます。

まず以下のように初期化した IgbClipboardOptions オブジェクトを用意します (下記は Razor コンポーネント内の @code コードブロックにフィールド変数として用意する例)。CopyHeaders プロパティに false を指定していますが、これが列ヘッダの内容をコピーしない指定となります。

@code
{
#pragma warning disable BL0005
  private IgbClipboardOptions _clipboardOptions = new()
  {
    CopyHeaders = false,
    CopyFormatters = true,
    Enabled = true,
    Separator = "\t"
  };
#pragma warning restore BL0005
...

こうして用意した IgbClipboardOptions オブジェクトを、IgbGrid の ClipboardOptions パラメーターに渡します。

<IgbGrid ... 
    ClipboardOptions="_clipboardOptions">
    ...

以上で、IgbGrid 上でセル選択の上、キーボードから Ctrl + C または ⌘ Command + C を押したときに、列ヘッダの内容は含まれず、選択されたセルの内容だけがクリップボードにコピーされるようになります。

ボブ	30
アリス	25

以下のリンク先で、実際に動作するデモでクリップボードコピーの動作を確認して頂けます。

https://igjp-kb-blazor.github.io/KB14230_IgbGrid_CopyWithoutHeader/

Tagged:

製品について

Ignite UI for Blazor