作成日: 2017/12/22 最終更新日: 2018/01/31
文書種別
不具合
状況
修正済み
詳細
GcCalendarコントロールのCalendarDimensionsプロパティを設定して複数の月を表示している状態で、次のいずれかの方法で、クライアント側で複数の月を一度にスクロールした後でページをポストバックすると、表示される月が不正に変更されます。
方法1.ScrollMonthメソッドを使ってスクロールを実行する
例:ScrollMonth(-6);
方法2.ScrollRateプロパティを設定し、ナビゲーションの操作でスクロールする
例:ScrollRate = 6;
カレンダーを未来方向にスクロールした場合や、サーバー側のScrollMonthメソッドでスクロールした場合は問題ありません。
方法1.ScrollMonthメソッドを使ってスクロールを実行する
例:ScrollMonth(-6);
方法2.ScrollRateプロパティを設定し、ナビゲーションの操作でスクロールする
例:ScrollRate = 6;
カレンダーを未来方向にスクロールした場合や、サーバー側のScrollMonthメソッドでスクロールした場合は問題ありません。
回避方法
この問題はInputMan for ASP.NET 10.0JのService Pack 1(v10.0.4001.2012)で修正されました。
不具合を修正した最新のサービスパックは、アップデートページ からダウンロードできます。
Service Pack 1より前のバージョンでは、次の方法で回避可能です。
以下のJavaScriptで回避することができます。
[JavaScript]
<script type="text/javascript">
window.onload = function () {
GCIM.CalendarUIProcess.prototype.onKeyDownHandler = function () {
}
function GcCalendar_Scrolled(sender, eArgs) {
adjustFocusDate(sender);
}
function GcCalendar_FocusDateChanged(sender, eArgs) {
adjustFocusDate(sender);
}
var adjustingFocusDate = false;
function adjustFocusDate(sender) {
if (adjustingFocusDate == true) {
return;
}
adjustingFocusDate = true;
try {
if (sender.Data.IsAspWrapper !== true) {
return;
}
var startDate = sender.Data.StartDate();
sender.SetFocusDate(new Date(startDate.valueOf()));
}
finally {
adjustingFocusDate = false;
}
}
</script>
[Aspx]
<im_calendar:GcCalendar ID="GcCalendar1" runat="server" HasLoadFromXml="True" Height="400px" Width="600px">
<ClientEvents Scrolled="GcCalendar1_Scrolled" FocusDateChanged="GcCalendar1_FocusDateChanged" />
<helpvalues selecteddate = "2017/12/22 00:00:00" culturename = 'ja-JP' height="400px" width="600px" ></helpvalues>
</im_calendar:GcCalendar>
不具合を修正した最新のサービスパックは、アップデートページ からダウンロードできます。
Service Pack 1より前のバージョンでは、次の方法で回避可能です。
以下のJavaScriptで回避することができます。
[JavaScript]
<script type="text/javascript">
window.onload = function () {
GCIM.CalendarUIProcess.prototype.onKeyDownHandler = function () {
}
function GcCalendar_Scrolled(sender, eArgs) {
adjustFocusDate(sender);
}
function GcCalendar_FocusDateChanged(sender, eArgs) {
adjustFocusDate(sender);
}
var adjustingFocusDate = false;
function adjustFocusDate(sender) {
if (adjustingFocusDate == true) {
return;
}
adjustingFocusDate = true;
try {
if (sender.Data.IsAspWrapper !== true) {
return;
}
var startDate = sender.Data.StartDate();
sender.SetFocusDate(new Date(startDate.valueOf()));
}
finally {
adjustingFocusDate = false;
}
}
</script>
[Aspx]
<im_calendar:GcCalendar ID="GcCalendar1" runat="server" HasLoadFromXml="True" Height="400px" Width="600px">
<ClientEvents Scrolled="GcCalendar1_Scrolled" FocusDateChanged="GcCalendar1_FocusDateChanged" />
<helpvalues selecteddate = "2017/12/22 00:00:00" culturename = 'ja-JP' height="400px" width="600px" ></helpvalues>
</im_calendar:GcCalendar>
旧文書番号
41454