バージョン

サーバー側の定期的な予定をアップデート

繰り返し予定の更新は以下の 3 つの簡単な手順で実行します。

  1. 繰り返し アクティビティ を取得します。

  2. 繰り返し のルート アクティビティを取得します。

  3. 変更でデータベースを更新します。

繰り返し予定の更新における最初のタスクは、繰り返し予定を含むアクティビティを取得することです。このトピックのために、今日発生する繰り返し予定があると想定します。アクティビティを取得した後で、その繰り返しの RootActivity にアクセスする必要があります(recurrence オブジェクトはアクティビティから作成されるからです)。RootActivity に対する制御を持ったら、繰り返しの更新を開始できます。データベースを変更で更新することで終了します。

Visual Basic の場合:

Imports Infragistics.WebUI.Shared
Imports Infragistics.WebUI.WebSchedule
...
' 今日発生する予定を見つけ出すために、GetActivitiesForDate メソッド
' を使用します。
Me.WebScheduleInfo1.DataBind()
Dim activities As ActivitiesSubsetCollection = _
  Me.WebScheduleInfo1.GetActivitiesForDate(Me.WebScheduleInfo1.ActiveResource, _
  New SmartDate(DateTime.Now))
Dim appointment As Appointment = CType(activities(0), Appointment)
' 繰り返しのルート アクティビティを取得します。
appointment = CType(appointment.Recurrence.RootActivity, Appointment)
' 更新している繰り返し予定。
appointment.Recurrence.MaxOccurrences = 5
' データ プロバイダの UpdateActivity メソッドでデータベースを更新します。
Me.WebScheduleOleDbProvider1.UpdateActivity(appointment)
' Activities コレクションを更新するために、DataBind を再度呼び出す必要があります。
' WebScheduleInfo は、一度呼び出した後では自動的に
' 呼び出しません。
Me.WebScheduleInfo1.DataBind()

C# の場合:

using Infragistics.WebUI.Shared;
using Infragistics.WebUI.WebSchedule;
...
// 以下の using ディレクティブを使用すると、完全に記述した名前を
// 毎回入力する必要がありません。
using Infragistics.WebUI;
using Infragistics.WebUI.WebSchedule;
// 今日発生する予定を見つけ出すために、GetActivitiesForDate メソッド
// を使用します。
this.WebScheduleInfo1.DataBind();
ActivitiesSubsetCollection activities =
  this.WebScheduleInfo1.GetActivitiesForDate(this.WebScheduleInfo1.ActiveResource,
  new SmartDate(DateTime.Now));
Appointment appointment = (Appointment)activities[0];
// 繰り返しのルート アクティビティを取得します。
appointment = (Appointment)appointment.Recurrence.RootActivity;
// 更新している繰り返し予定。
appointment.Recurrence.MaxOccurrences = 5;
// データ プロバイダの UpdateActivity メソッドでデータベースを更新します。
this.WebScheduleOleDbProvider1.UpdateActivity(appointment);
// Activities コレクションを更新するために、DataBind を再度呼び出す必要があります。
// WebScheduleInfo は、一度呼び出した後では自動的に
// 呼び出しません。
this.WebScheduleInfo1.DataBind();