日付コントロールでスピンアクションの増減量をフィールドごとに異なる値にするには?

文書番号 : 23634     文書種別 : 使用方法     最終更新日 : 2007/03/24
文書を印刷する
対象製品
InputMan for .NET 2.0J Web Forms Edition
詳細
日付コントロールのSpin.Incrimentプロパティでスピンアクション時の増減量を設定すると、すべてのフィールドに適用されてしまいます。カレットのあるフィールドごとに増減量を変更したい場合は、クライアント側のSpinDownおよびSpinUpイベントを実装します。

次のサンプルコードでは、書式を時刻形式に設定された日付コントロールでのスピンアクション増減量が、時フィールドにカレットがある場合は1時間、分フィールドにカレットがある場合は15分とする例です。

[Visual Basic]
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  If Not IsPostBack Then
    Date1.Format.Pattern = "HH:mm"
    Date1.DisplayFormat.Pattern = "H:mm"
    Date1.Spin.Increment = 1
    Date1.Spin.Visible = True
  End If
End Sub

[C#]
protected void Page_Load(object sender, EventArgs e)
{
  if (!IsPostBack)
  {
    Date1.Format.Pattern = "HH:mm";
    Date1.DisplayFormat.Pattern = "H:mm";
    Date1.Spin.Increment = 1;
    Date1.Spin.Visible = true;
  }
}

以下のクライアント側スクリプトの実装は、Visual Basic、C#共通です。クライアント側イベントを追加する方法については、製品ヘルプをご確認ください。

[クライアント側スクリプト]
 - [クライアント側イベント]

[JavaScript]
<script language=javascript>
//フラグ(イベント重複発生を防止)
var fl_spinup = false;
var fl_spindown = false;

function Date1_SpinDown(oDate, eArgs)
{
  if( fl_spindown == false && oDate.GetCurrentField() == 7)
  {
    fl_spindown = true;
    oDate.DoSpinDown(DateCursorPosition.Minute, 14);
    return;
  }
  fl_spindown = false;
}

function Date1_SpinUp(oDate, eArgs)
{
  if( fl_spinup == false && oDate.GetCurrentField() == 7)
  {
    fl_spinup = true;
    oDate.DoSpinUp(DateCursorPosition.Minute, 14);
    return;
  }
  fl_spinup = false;
}
</script>
関連情報

この文書は、以前は次のFAQ IDで公開されていました : 10069