改行を含むセルを対象としたフィルタダイアログでチェック表示が不正になる
対象製品
SpreadJS 9J
状況
修正済み
詳細
改行を含むセルを対象としたフィルタダイアログを表示した場合に、不正にダイアログ上のチェックが外れる現象が発生します。
【現象再現手順】
--------------------------------------------------
1. 以下の再現コードを実行します
2. A列ヘッダのフィルタボタンを押下し、フィルタダイアログを表示します
- A1セルの内容を示すダイアログ表示のチェックが外れる現象が発生します
--------------------------------------------------
【現象再現コード】
--------------------------------------------------
$(document).ready(function () {
$("#ss").wijspread();
var spread = $("#ss").wijspread("spread");
var sheet = spread.getActiveSheet();
sheet.defaults.rowHeight = 50;
sheet.getColumn(0).wordWrap(true);
sheet.getCell(0,0).value("ABC¥r¥nEFG");
sheet.rowFilter(new $.wijmo.wijspread.HideRowFilter(new $.wijmo.wijspread.Range(-1, -1, -1, -1)));
});
--------------------------------------------------
【現象再現手順】
--------------------------------------------------
1. 以下の再現コードを実行します
2. A列ヘッダのフィルタボタンを押下し、フィルタダイアログを表示します
- A1セルの内容を示すダイアログ表示のチェックが外れる現象が発生します
--------------------------------------------------
【現象再現コード】
--------------------------------------------------
$(document).ready(function () {
$("#ss").wijspread();
var spread = $("#ss").wijspread("spread");
var sheet = spread.getActiveSheet();
sheet.defaults.rowHeight = 50;
sheet.getColumn(0).wordWrap(true);
sheet.getCell(0,0).value("ABC¥r¥nEFG");
sheet.rowFilter(new $.wijmo.wijspread.HideRowFilter(new $.wijmo.wijspread.Range(-1, -1, -1, -1)));
});
--------------------------------------------------
回避方法
SpreadJS 9J SP1(Ver.3.20152.21)で修正済み
SpreadJS 9J SP1(Ver.3.20152.21)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
getTextメソッドをオーバーライドし、下記のような処理を行うことで現象の回避が可能です。
<script type="text/javascript">
$(document).ready(function () {
$("#ss").wijspread();
var spread = $("#ss").wijspread("spread");
var sheet = spread.getActiveSheet();
sheet.defaults.rowHeight = 50;
sheet.getColumn(0).wordWrap(true);
sheet.getCell(0,0).value("ABC¥r¥nEFG");
sheet.rowFilter(new $.wijmo.wijspread.HideRowFilter(new $.wijmo.wijspread.Range(-1, -1, -1, -1)));
});
// getTextメソッドをオーバーライド
var oldGetText = $.wijmo.wijspread.Sheet.prototype.getText;
$.wijmo.wijspread.Sheet.prototype.getText = function (row, col, sheetArea) {
var result = oldGetText.apply(this, arguments);
if (typeof (result) === "string") {
result = result.replace(/¥r¥n?/g, "¥n");
}
return result;
}
</script>
SpreadJS 9J SP1(Ver.3.20152.21)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
getTextメソッドをオーバーライドし、下記のような処理を行うことで現象の回避が可能です。
<script type="text/javascript">
$(document).ready(function () {
$("#ss").wijspread();
var spread = $("#ss").wijspread("spread");
var sheet = spread.getActiveSheet();
sheet.defaults.rowHeight = 50;
sheet.getColumn(0).wordWrap(true);
sheet.getCell(0,0).value("ABC¥r¥nEFG");
sheet.rowFilter(new $.wijmo.wijspread.HideRowFilter(new $.wijmo.wijspread.Range(-1, -1, -1, -1)));
});
// getTextメソッドをオーバーライド
var oldGetText = $.wijmo.wijspread.Sheet.prototype.getText;
$.wijmo.wijspread.Sheet.prototype.getText = function (row, col, sheetArea) {
var result = oldGetText.apply(this, arguments);
if (typeof (result) === "string") {
result = result.replace(/¥r¥n?/g, "¥n");
}
return result;
}
</script>