作成日: 2022/04/12 最終更新日: 2022/08/31
文書種別
不具合
状況
修正済み
詳細
非表示列を含むFlexGridで、1行コピー&ペースト操作を行ったとき、copiedイベントとpastedイベントでそれぞれ取得される列数(列インデックス)が異なります。
例えば、9列に設定したFlexGridで、以下のように列を非表示にしているとき、行ヘッダをクリックして1行選択した状態でコピー&ペースト操作を行うと、copiedで取得されるcolumnSpanは9になり、pastedで取得されるcolumnSpanは6になります。
grid.columns[0].visible = false;
grid.columns[3].visible = false;
grid.columns[7].visible = false;
grid.copied.addHandler(function (s, e) {
console.log("Copied ", e.range?.columnSpan)
})
grid.pasted.addHandler(function (s, e) {
console.log('pasted', e.range.columnSpan);
});
回避方法
この問題は2022J v2(4.5.20222.340)で修正されました。
※修正版を適用しない場合の回避方法は以下の通りです。
pastedで非表示列を含む列数(copiedで取得されるcolumnSpanと同じ値)を取得するには、コピー時に取得した値をグローバル変数に格納し、ペースト時に使用する方法が考えられます。
※修正版を適用しない場合の回避方法は以下の通りです。
pastedで非表示列を含む列数(copiedで取得されるcolumnSpanと同じ値)を取得するには、コピー時に取得した値をグローバル変数に格納し、ペースト時に使用する方法が考えられます。
var copied = 0; //回避コード
grid.copied.addHandler(function (s, e) {
console.log("Copied ", e.range?.columnSpan)
copied = e.range?.columnSpan; //回避コード
})
grid.pasted.addHandler(function (s, e) {
//console.log('pasted', e.range.columnSpan);
console.log('pasted', copied); //回避コード
});