作成日: 2024/06/26 最終更新日: 2025/05/14
文書種別
不具合
発生環境
5.20232.939以降のバージョンで発生
状況
修正済み
詳細
固定列をグリッドの表示領域幅以上にマウスドラッグし続けると、表示は領域以上に列幅が広がりマウスを離すと表示領域幅まで戻ります。
回避方法
この問題はバージョン5.20242.21で修正されました。
※この修正に伴って非固定列でも列幅をグリッドの表示領域以上は広げられないように変更されました。
また、5.20251.34以降のバージョンでは、allowResizingプロパティにColumnsOverflow、BothOverflow、ColumnsAllCellsOverflow、BothAllCellsOverflow を設定することにより、非固定列について列幅を表示領域以上にリサイズすることが可能です。
修正版を適用しない場合の回避方法は次の通りです。
_handleResizing(内部メソッド)を以下のように上書きします。
wijmo.grid._MouseHandler.prototype._handleResizing = function (e) {
'mousedown' == e.type &&
(wijmo.isSafari()
? wijmo.setAttribute(e.target, 'draggable', null)
: e.preventDefault());
var t = this._szRowCol,
i = wijmo.grid.CellType;
if (t instanceof wijmo.grid.Column) {
var o = this._g,
n = wijmo.mouseToPage(e).x,
l = Math.round(
Math.max(
wijmo.grid._MouseHandler._SZ_MIN,
this._szStart + (n - this._htDown.point.x) * (o.rightToLeft ? -1 : 1)
)
);
if (t.renderSize != l) {
if (null == this._szArgs) {
var r = o.rowHeaders.columns.indexOf(t) > -1 ? o.rowHeaders : o.cells;
this._szArgs = new wijmo.grid.CellRangeEventArgs(
r,
new wijmo.grid.CellRange(-1, t.index)
);
}
this._szArgs.cancel = !1;
if (o.onResizingColumn(this._szArgs))
if (o.deferResizing) {
this._showResizeMarker(l);
} else {
var s = o.columns.indexOf(t);
if (
o.columns.isFrozen(s) &&
(this._htDown.cellType == i.ColumnHeader ||
this._htDown.cellType === i.Cell)
) {
for (var a = 0, u = 0; u < o.columns.frozen; u++)
u != s &&
(a +=
null == o.columns[u].width
? o.columns[u].renderWidth
: o.columns[u].width);
var c = o._szClient.width - a - 5;
l > c && (l = c);
}
t.width = l;
}
}
}
var d = this._szRowCol;
if (d instanceof wijmo.grid.Row) {
o = this._g;
var h = wijmo.mouseToPage(e).y;
l = Math.round(
Math.max(
wijmo.grid._MouseHandler._SZ_MIN,
this._szStart + (h - this._htDown.point.y)
)
);
if (d.renderSize != l) {
if (null == this._szArgs) {
r =
o.columnHeaders.rows.indexOf(d) > -1
? o.columnHeaders
: o.columnFooters.rows.indexOf(d) > -1
? o.columnFooters
: o.cells;
this._szArgs = new wijmo.grid.CellRangeEventArgs(
r,
new wijmo.grid.CellRange(d.index, -1)
);
}
this._szArgs.cancel = !1;
if (o.onResizingRow(this._szArgs))
if (o.deferResizing) {
var _ = o.rows.indexOf(d);
if (
o.rows.isFrozen(_) &&
(this._htDown.cellType == i.RowHeader ||
this._htDown.cellType === i.Cell)
) {
var p = 0;
for (u = 0; u < o.rows.frozen; u++)
u != _ &&
(p +=
null == o.rows[u].height
? o.rows[u].renderHeight
: o.rows[u].height);
var f = o._szClient.height - p - 5;
l > f && (l = f);
}
this._showResizeMarker(l);
} else d.height = l;
}
}
this._szArgs && e.preventDefault();
};