2

現在の日付から日付を表示し、データベーステーブルに保存されている日付を無効にして強調表示するには、ajax カレンダーコントロールを使用する必要があります。

以前の日付を無効にして、選択を現在の日付から 1 か月に制限することができます。また、Ajax カレンダー コントロールではなく、asp.net カレンダー コントロールでイベント用に既に予約されている日付を強調表示します。

ここに画像の説明を入力

次のコードは、ajaxcalander コントロールでエラーを生成します。

   protected void AjaxCalendar_PreRender(object sender, EventArgs e)  
   {
        //startdate= enddate="2012-06-25"
        DateTime startDate = Helper.GetUAEDateTime();
        DateTime endDate = DateTime.Now.AddDays(10);

        AjaxCalendar.StartDate = startDate;
        AjaxCalendar.EndDate = endDate;

        // If the month is CurrentMonth
        if (!e.Day.IsOtherMonth)
        {
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                if ((dr["BookingDate"].ToString() != DBNull.Value.ToString()))
                {
                    DateTime dtEvent = (DateTime)dr["BookingDate"];
                    if (dtEvent.Equals(e.Day.Date))
                    {
                        e.Cell.BackColor = Color.PaleVioletRed;
                        e.Day.IsSelectable = false;

                    }
                }
            }
        }
        //If the month is not CurrentMonth then hide the Dates
        else
        {
            e.Cell.Text = "";
        }
    }
}

次のコードで生成されたエラー if (!e.Day.IsOtherMonth)

CS1061: 'System.EventArgs' には 'Day' の定義が含まれておらず、タイプ 'System.EventArgs' の最初の引数を受け入れる拡張メソッド 'Day' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

HTML

<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:CalendarExtender ID="AjaxCalendar" runat="server"  
     TargetControlID="TextBox2" Format="yyyy-MM-dd" 
     onprerender="AjaxCalendar_PreRender"  >
</asp:CalendarExtender>

asp.netカレンダーコントロールに同じコードブロックを配置すると、正常に動作します

この問題を解決するのに役立つソリューションまたはコード サンプルを探すのに数時間を費やしましたが、成功しませんでした。これについて何か助けていただければ幸いです。

私は100の例を見てきましたが、それらのほとんどはJavaScriptを使用して古い日付または週末をブロックしていることを示していますが、コードビハインドを使用してそれを実現したいと考えています。ajax カレンダー コントロールで利用可能な日レンダリング イベント

4

3 に答える 3

0
<AjaxControl:CalendarExtender ID ="myCalendar" runat=”server” TargetControlID=”txtDateTime” OnClientShown="disablenonthursdays">
</AjaxControl:CalendarExtender>

<script language="javascript">
function disablenonthursdays(sender, args)
{
     for(var day =0; day <sender._days.all.length; day++)
    {
              for(var weekday =0; weekday < 6; weekday++)
             {
                    if(sender._days.all[day].id != “calendarValidToDate_day_”+ weekday +”_4″)
                   {
                          sender._days.all[day].disabled = true;
                          sender._days.all[day].innerHTML = “&lt;div>” +sender._days.all[day].innerText+ “&lt;/div>”;
                    }
            }
     }
}
</script>
于 2012-06-04T06:49:44.510 に答える
-1

Calandar controlとを使ってそれができると思いますPopupControl Extender。あなたはあなたがするすべてをすることができます、Calendar controlそしてそれはのように振る舞いCalendar Extenderます。このリンクもチェックしてください。

于 2012-07-19T14:43:07.367 に答える
-1

e は EventArgs 型であり、witch にはイベントに関する情報が含まれているため、これは正しいことです。PreRender-Event の実際の型はわかりませんが、コードをデバッグできるはずで、e を実際の型にキャストしてプロパティ「Day」にアクセスする必要があります。

于 2012-05-30T07:40:31.950 に答える