作成日: 2019/10/03 最終更新日: 2020/05/28
文書種別
不具合
状況
修正済み
詳細
ClientAutoSizeプロパティによるコントロールサイズの自動調整機能とClientAutoSizeMaxWidth/ClientAutoSizeMaxHeightプロパティによる最大幅/高さを設定し、さらに行/列の固定機能を使用(FrozenRowCountプロパティ、FrozenColumnCountプロパティの片方または両方を1以上に設定)した場合、コントロールにスクロールバーが表示されている状態であっても、オートスクロール(ユニバーサルスクロール)およびタッチ操作によるスクロールが正しく動作しません。
【発生ブラウザ】
オートスクロールによるスクロールが動作しない不具合:
・IE11/Edge/Chrome/Firefox
タッチ操作によるスクロールが動作しない不具合:
・IE11/Edge/Chrome
※SPREADはFirefox上でのタッチ操作をサポートしていません。
【発生ブラウザ】
オートスクロールによるスクロールが動作しない不具合:
・IE11/Edge/Chrome/Firefox
タッチ操作によるスクロールが動作しない不具合:
・IE11/Edge/Chrome
※SPREADはFirefox上でのタッチ操作をサポートしていません。
回避方法
Service Pack 6(v10.0.4011.2013)で修正済み。
Service Pack 6より前のバージョンでは次の回避方法が有効です。
下記のスクリプトを実装することにより回避できます。
<script type="text/javascript">
document.onreadystatechange = function () {
if (document.readyState == "complete") {
var spread = document.getElementById("<%=FpSpread1.ClientID%>");
if (spread != null)
{
var spreadView = spread.getSpreadView();
var view = (spreadView.Viewport != null ? spreadView.Viewport.parentElement : null);
var view1 = spreadView.Viewport1, view2 = spreadView.Viewport2;
if (view1 != null)
view1 = view1.parentElement;
if (view2 != null)
view2 = view2.parentElement;
var autoSize = (spread.getAttribute("ClientAutoSize") == "True");
var has_scroll_vp = (spreadView.GetSpreadContext().getScrollvp() != null);
if ((!autoSize || spreadView.IsVerticalRestricClientAutoSize() || spreadView.IsHorizontalRestricClientAutoSize()) && (has_scroll_vp || (view.style.overflowX == "hidden" && view.style.overflowY == "hidden"))) {
var panableViews = [view];
if (has_scroll_vp) {
if (view1)
panableViews.push(view1);
if (view2)
panableViews.push(view2);
}
for (var i = 0; i < panableViews.length; i++) {
var _view = panableViews[i];
if (_view) {
if ($$.browser.mb) {
spreadView.Style.Clear(_view, 'overflow', 'overflowX', 'overflowY');
$$.j(_view).removeClass('scrollable-without-scrollbar');
$$.j(_view).addClass('scrollable-without-scrollbar');
}
else {
_view.style.overflowX = "";
_view.style.overflowY = "";
_view.style.overflow = "auto";
_view.style.msOverflowStyle = "none";
}
}
}
}
}
}
}
</script>
Service Pack 6より前のバージョンでは次の回避方法が有効です。
下記のスクリプトを実装することにより回避できます。
<script type="text/javascript">
document.onreadystatechange = function () {
if (document.readyState == "complete") {
var spread = document.getElementById("<%=FpSpread1.ClientID%>");
if (spread != null)
{
var spreadView = spread.getSpreadView();
var view = (spreadView.Viewport != null ? spreadView.Viewport.parentElement : null);
var view1 = spreadView.Viewport1, view2 = spreadView.Viewport2;
if (view1 != null)
view1 = view1.parentElement;
if (view2 != null)
view2 = view2.parentElement;
var autoSize = (spread.getAttribute("ClientAutoSize") == "True");
var has_scroll_vp = (spreadView.GetSpreadContext().getScrollvp() != null);
if ((!autoSize || spreadView.IsVerticalRestricClientAutoSize() || spreadView.IsHorizontalRestricClientAutoSize()) && (has_scroll_vp || (view.style.overflowX == "hidden" && view.style.overflowY == "hidden"))) {
var panableViews = [view];
if (has_scroll_vp) {
if (view1)
panableViews.push(view1);
if (view2)
panableViews.push(view2);
}
for (var i = 0; i < panableViews.length; i++) {
var _view = panableViews[i];
if (_view) {
if ($$.browser.mb) {
spreadView.Style.Clear(_view, 'overflow', 'overflowX', 'overflowY');
$$.j(_view).removeClass('scrollable-without-scrollbar');
$$.j(_view).addClass('scrollable-without-scrollbar');
}
else {
_view.style.overflowX = "";
_view.style.overflowY = "";
_view.style.overflow = "auto";
_view.style.msOverflowStyle = "none";
}
}
}
}
}
}
}
</script>
旧文書番号
84530