作成日: 2023/06/06 最終更新日: 2023/11/24
文書種別
不具合
発生環境
5.20222.877以降のバージョンで発生
状況
修正済み
詳細
DataType=Numberの列を持つFlexGridに、getErrorプロパティを定義したCollectionViewを設定します。
この時、表示行が2行以上存在しデータがnullの場合にセルを選択するとセル選択がループしてしまいます。
この問題は、FlexGridのitemValidatorプロパティを定義した場合にも同様に発生します。
この時、表示行が2行以上存在しデータがnullの場合にセルを選択するとセル選択がループしてしまいます。
この問題は、FlexGridのitemValidatorプロパティを定義した場合にも同様に発生します。
回避方法
この問題はバージョン5.20231.904で修正されました。
修正版を適用しない場合の回避方法は次の通りです。
selectionChangingで次の処理を設定します。
import * as wjGrid from '@grapecity/wijmo.grid';
grid.selectionChanging._handlers = [];
grid.selectionChanging.addHandler(function (s, e) {
let g = grid;
let _this = grid._edtHdl;
if (_this.finishEditing()) {
var oldRow_1 = g._selHdl.selection.row;
if (oldRow_1 != e.row) {
var len = g.rows.length, oldItem = oldRow_1 > -1 && oldRow_1 < len ? g.rows[oldRow_1].dataItem : null, newItem = e.row > -1 && e.row < len ? g.rows[e.row].dataItem : null;
if (oldItem != newItem) {
_this._commitRowEdits();
if (g._getHasValidation()) {
var erc_1 = !g.rows[oldRow_1] || (g.rows[oldRow_1] && (Object.getPrototypeOf(g.rows[oldRow_1]) !== wjGrid.Row.prototype)) ? null : g.validateEdits ? g.getEmptyRequiredCell(oldRow_1) : null;
if (erc_1 !== null) {
setTimeout(function () {
g.select(new wjGrid.CellRange(oldRow_1, erc_1));
_this.startEditing(true, oldRow_1, erc_1, true, e);
});
}
}
}
}
}
else {
e.cancel = true;
}
});