0

私はTelerik Radschedulerを開発しました.イベントのperticulerタイムスロットを無効/有効にしたいという点で以下のようなコードを書いています. allow-insert を有効にします。この問題を解決するためにどこを変更する必要があるか教えてください...

        protected void RadScheduler1_TimeSlotCreated1(object sender, TimeSlotCreatedEventArgs e)
  {

    //Getting Business hour time
    mybusinesscalendarEntities objEntity = new mybusinesscalendarEntities();
    var Result = from bhours in objEntity.businesshours where bhours.BusinessId == businessid select bhours;
    if (Result.Count() > 0)
    {
        var Hours = (from bhours in objEntity.businesshours where bhours.BusinessId == businessid select bhours).First();


        //Get particular day businee hour timings and disable the time slot 

        string Day = System.DateTime.Today.DayOfWeek.ToString();
        if (Day == "Monday")
        {
            string WorkDay = Hours.MondayFromTime.Value.ToShortTimeString();
            string WorkDayStart = WorkDay.Remove(WorkDay.Length - 2, 2);
            string WorkDayEnd = Hours.MondayToTime.Value.ToShortTimeString();
            string WorkDayEndTime = WorkDayEnd.Remove(WorkDayEnd.Length - 2, 2);
            if ((e.TimeSlot.Start.TimeOfDay < TimeSpan.Parse(WorkDayStart.Trim())) || (e.TimeSlot.Start.TimeOfDay > TimeSpan.Parse(WorkDayEndTime.Trim())))
            {
                e.TimeSlot.CssClass = "Disabled";
                RadScheduler1.ReadOnly = true;
            }

            else

            {

                RadScheduler1.ReadOnly = false;
                RadScheduler1.AllowInsert = true;
                RadScheduler1.AllowEdit = true;
                RadScheduler1.AllowDelete = true;

            }
4

1 に答える 1

0

最後のタイムスロットが作成されたとき (最後のイベントが発生したとき) に、この部分が true と評価されます。

        if ((e.TimeSlot.Start.TimeOfDay < TimeSpan.Parse(WorkDayStart.Trim())) || (e.TimeSlot.Start.TimeOfDay > TimeSpan.Parse(WorkDayEndTime.Trim())))
        {
            e.TimeSlot.CssClass = "Disabled";
            RadScheduler1.ReadOnly = true;
        }

その後、スケジューラ全体が読み取り専用モードになります。これは、編集、挿入、削除、移動などがないことを意味します。

あなたの意図は、特定のタイムスロットを無効にすることです。この特定のイベントでこれらのプロパティを設定するつもりはないと思います。

            RadScheduler1.ReadOnly = false;
            RadScheduler1.AllowInsert = true;
            RadScheduler1.AllowEdit = true;
            RadScheduler1.AllowDelete = true;

readonly、allowinster、allowedit、allowdelete プロパティを設定する行をコメントアウトしてテストします。それらはタイムスロットごとではなく、スケジューラ全体に対してのものであるためです。

于 2011-08-02T07:16:20.543 に答える