作成日: 2020/01/28 最終更新日: 2020/07/31
文書種別
不具合
状況
修正済み
詳細
「selectionMode="MultiRange"」で複数範囲を選択できるようにしたグリッドにおいて、1つのセルをコピーした後、以下の例のように「Ctrl+各セル」で連続しない複数のセルを選択してから貼り付けを行うと、最後に選択したセルにのみ貼り付けされます。
例:
A1のセルをコピーし、Ctrlキーを押しながらA3、A5のセルを選択し、貼り付けを行うとA5のセルにのみA1セルの値が貼り付けられます。
例:
A1のセルをコピーし、Ctrlキーを押しながらA3、A5のセルを選択し、貼り付けを行うとA5のセルにのみA1セルの値が貼り付けられます。
回避方法
この問題はバージョン5.20201.663で修正されました。
修正版を適用しない場合の回避方法は次の通りです。
貼り付け時に選択されている領域に対して、クリップボードの値を設定するイベントを追加します。
◆サンプルコード
------------------------------------------------------------
【app.component.html】
<wj-flex-grid (pasting)="onPasted(grid, $event)" selectionMode="MultiRange" #grid [itemsSource]="source">
</wj-flex-grid>
【app.component.ts】
//無限ループとオーバーフローを防止するためのメンバ変数
_multiPasting: boolean;
onPasted(s, e) {
if (!this._multiPasting) {
this._multiPasting = true;
s.selectedRanges.forEach(r => s.setClipString(e.data, r));
this._multiPasting = false;
}
}
------------------------------------------------------------
修正版を適用しない場合の回避方法は次の通りです。
貼り付け時に選択されている領域に対して、クリップボードの値を設定するイベントを追加します。
◆サンプルコード
------------------------------------------------------------
【app.component.html】
<wj-flex-grid (pasting)="onPasted(grid, $event)" selectionMode="MultiRange" #grid [itemsSource]="source">
</wj-flex-grid>
【app.component.ts】
//無限ループとオーバーフローを防止するためのメンバ変数
_multiPasting: boolean;
onPasted(s, e) {
if (!this._multiPasting) {
this._multiPasting = true;
s.selectedRanges.forEach(r => s.setClipString(e.data, r));
this._multiPasting = false;
}
}
------------------------------------------------------------
旧文書番号
84892