コンボボックスのリスト内容が、他のコンボボックスのリスト内容と統合される
対象製品
SpreadJS 9J
発生環境
9.20161.0
状況
修正済み
詳細
AngularJSを利用して複数のコンボボックスを定義すると、各コンボボックスのリスト内容が、一つに統合される現象が発生します。
【再現手順】
1.下記の再現コードを実行します
M161130046.zip
【動作結果】
1列目と2列目のコンボボックスとも[利用者コード, 利用者ID, Yes, No]というリストが表示されます。(1列目と2列目でそれぞれ[利用者コード, 利用者ID]、[Yes, No]と列挙されるのが正常な動作です。)
【再現手順】
1.下記の再現コードを実行します
M161130046.zip
【動作結果】
1列目と2列目のコンボボックスとも[利用者コード, 利用者ID, Yes, No]というリストが表示されます。(1列目と2列目でそれぞれ[利用者コード, 利用者ID]、[Yes, No]と列挙されるのが正常な動作です。)
回避方法
SpreadJS 9J SP2(Ver.9.20171.0)で修正済み
SpreadJS 9J SP2(Ver.9.20171.0)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
コンボボックスのコンストラクタを下記のように書き換えて利用することで現象の回避が可能です。
----------------------------------------
var oldCombo = GC.Spread.Sheets.CellTypes.ComboBox;
function ReplaceCombo() {
oldCombo.apply(this, arguments);
this.items([]);
}
ReplaceCombo.prototype = new oldCombo();
GC.Spread.Sheets.CellTypes.ComboBox = ReplaceCombo;
----------------------------------------
SpreadJS 9J SP2(Ver.9.20171.0)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
コンボボックスのコンストラクタを下記のように書き換えて利用することで現象の回避が可能です。
----------------------------------------
var oldCombo = GC.Spread.Sheets.CellTypes.ComboBox;
function ReplaceCombo() {
oldCombo.apply(this, arguments);
this.items([]);
}
ReplaceCombo.prototype = new oldCombo();
GC.Spread.Sheets.CellTypes.ComboBox = ReplaceCombo;
----------------------------------------