コンボコントロールのドロップダウンリストで項目を未選択にしても不正な項目が選択状態になる場合がある
対象製品
InputMan for ASP.NET 8.0J
状況
修正済み
詳細
コンボコントロールでリストから項目を選択後、リストに存在しない値を手入力してから再びリストを開くと、リスト内の項目が選択されたままになる場合があります。ただし、この場合でもSelectedIndexプロパティは-1が設定されます。
回避方法
この問題はService Pack 4(v8.0.2016.1130)で修正されました。
不具合を修正した最新のサービスパックは、アップデートページ からダウンロードできます。
Service Pack 4より前のバージョンでは、次の方法で回避可能です。
以下の回避スクリプトをaspxファイルに追加することで回避可能です。
[JavaScript]
<script type="text/javascript">
window.onload = function() {
if (window.GCIM && window.GCIM.GcComboBox) {
var oldPerformDropDown = GCIM.GcComboBox.prototype.PerformDropDown;
GCIM.GcComboBox.prototype.PerformDropDown = function () {
oldPerformDropDown.apply(this, arguments);
if (this._droppedDown) {
var idx = -1;
var dropDownObj = this.GetDropDownObj();
if (dropDownObj.GetSelectedIndex() === -1) {
idx = this._autoGetSelectedIndex(false);
}
if (idx == -1) {
dropDownObj._command.SetHoverRow(idx);
}
}
}
}
}
</script>
不具合を修正した最新のサービスパックは、アップデートページ からダウンロードできます。
Service Pack 4より前のバージョンでは、次の方法で回避可能です。
以下の回避スクリプトをaspxファイルに追加することで回避可能です。
[JavaScript]
<script type="text/javascript">
window.onload = function() {
if (window.GCIM && window.GCIM.GcComboBox) {
var oldPerformDropDown = GCIM.GcComboBox.prototype.PerformDropDown;
GCIM.GcComboBox.prototype.PerformDropDown = function () {
oldPerformDropDown.apply(this, arguments);
if (this._droppedDown) {
var idx = -1;
var dropDownObj = this.GetDropDownObj();
if (dropDownObj.GetSelectedIndex() === -1) {
idx = this._autoGetSelectedIndex(false);
}
if (idx == -1) {
dropDownObj._command.SetHoverRow(idx);
}
}
}
}
}
</script>