作成日: 2018/09/05 最終更新日: 2018/11/29
文書種別
不具合
状況
修正済み
詳細
ClientSelectionModeプロパティの設定時、仮想スクロール中(「読み込み中」という表示が出ている間)にグリッドをクリックするとエラーが発生します。
本現象は、ClientSelectionMode=None(デフォルト)の場合には発生しません。
本現象は、ClientSelectionMode=None(デフォルト)の場合には発生しません。
回避方法
この問題は2018J v3(4.0.20183.298)で修正されました。
※修正版を適用しない場合の回避方法は以下の通りです。
OnClientRenderedプロパティで実装したイベント内で下記のスクリプトを実装することで回避できます。
<script>
function onGridViewRendered() {
var grid = $("#C1GridView1").data("wijmoC1gridview");
var selection = grid.selection();
selection.doSelection = function () {
var view = this._wijgrid._view(), wijCSS = this._wijgrid.options.wijCSS,
rowInfo,
prevRowIndex = -1;
for (var i = 0, len = this._removedCells.length(); i < len; i++) {
var cellInfo = this._removedCells.item(i);
if (this._addedCells.indexOf(cellInfo) < 0) {
if (prevRowIndex !== cellInfo.rowIndex()) {
rowInfo = cellInfo.row();
prevRowIndex = cellInfo.rowIndex();
}
this.selectCell(cellInfo, rowInfo, view, false);
if (!rowInfo) {
console.log("Original issue occured.");
}
if (rowInfo && rowInfo.$rows) {
rowInfo.$rows.removeClass(wijCSS.stateDefault + " " + wijCSS.stateHover);
}
this._selectedCells._remove(cellInfo);
this._addedDuringCurTransactionCells._remove(cellInfo);
}
else {
this._removedCells._removeAt(i);
i--;
len--;
}
}
prevRowIndex = -1;
for (var i = 0, len = this._addedCells.length(); i < len; i++) {
var cellInfo = this._addedCells.item(i),
index = this._selectedCells.indexOf(cellInfo);
if (index < 0) {
if (prevRowIndex !== cellInfo.rowIndex()) {
rowInfo = cellInfo.row();
prevRowIndex = cellInfo.rowIndex();
}
this.selectCell(cellInfo, rowInfo, view, true);
this._selectedCells._insertUnsafe(cellInfo, ~index);
this._addedDuringCurTransactionCells._add(cellInfo);
}
else {
this._addedCells._removeAt(i);
i--;
len--;
}
}
}
}
</script>
<wijmo:C1GridView ID="C1GridView1" runat="server" ・・・ ClientSelectionMode="SingleRow" OnClientRendered="onGridViewRendered">
※修正版を適用しない場合の回避方法は以下の通りです。
OnClientRenderedプロパティで実装したイベント内で下記のスクリプトを実装することで回避できます。
<script>
function onGridViewRendered() {
var grid = $("#C1GridView1").data("wijmoC1gridview");
var selection = grid.selection();
selection.doSelection = function () {
var view = this._wijgrid._view(), wijCSS = this._wijgrid.options.wijCSS,
rowInfo,
prevRowIndex = -1;
for (var i = 0, len = this._removedCells.length(); i < len; i++) {
var cellInfo = this._removedCells.item(i);
if (this._addedCells.indexOf(cellInfo) < 0) {
if (prevRowIndex !== cellInfo.rowIndex()) {
rowInfo = cellInfo.row();
prevRowIndex = cellInfo.rowIndex();
}
this.selectCell(cellInfo, rowInfo, view, false);
if (!rowInfo) {
console.log("Original issue occured.");
}
if (rowInfo && rowInfo.$rows) {
rowInfo.$rows.removeClass(wijCSS.stateDefault + " " + wijCSS.stateHover);
}
this._selectedCells._remove(cellInfo);
this._addedDuringCurTransactionCells._remove(cellInfo);
}
else {
this._removedCells._removeAt(i);
i--;
len--;
}
}
prevRowIndex = -1;
for (var i = 0, len = this._addedCells.length(); i < len; i++) {
var cellInfo = this._addedCells.item(i),
index = this._selectedCells.indexOf(cellInfo);
if (index < 0) {
if (prevRowIndex !== cellInfo.rowIndex()) {
rowInfo = cellInfo.row();
prevRowIndex = cellInfo.rowIndex();
}
this.selectCell(cellInfo, rowInfo, view, true);
this._selectedCells._insertUnsafe(cellInfo, ~index);
this._addedDuringCurTransactionCells._add(cellInfo);
}
else {
this._addedCells._removeAt(i);
i--;
len--;
}
}
}
}
</script>
<wijmo:C1GridView ID="C1GridView1" runat="server" ・・・ ClientSelectionMode="SingleRow" OnClientRendered="onGridViewRendered">
旧文書番号
83197