web-dev-qa-db-ja.com

ASP.Net Calendarコントロールでデフォルトで現在の日付を選択する

このカレンダーコントロールを備えたaspxページがあるとします。

<asp:Calendar ID="Calendar1" runat="server"  SelectedDate="" ></asp:Calendar>

コードビハインドを使用せずに、デフォルトで現在の日付を使用するためにSelectedDateに入力できるものはありますか?

19
Joel Coehoorn

既にデータバインディングを実行している場合:

<asp:Calendar ID="Calendar1" runat="server"  SelectedDate="<%# DateTime.Today %>" />

それをします。これには、どこかでPage.DataBind()呼び出し(または親コントロールでのデータバインド呼び出し)を行う必要があります。それをしておらず、ページ上にコードビハインドが絶対に必要ない場合は、カレンダーコントロールを含み、その選択された日付を設定するユーザーコントロールを作成する必要があります。

18
Philip Rieck

DateTime.Nowは機能しません。代わりにDateTime.Todayを使用してください。

16
Kevin

私はカレンダーがデフォルトで日付を選択し、ユーザーのためにそれを強調するようにしようとしていました。ただし、上記のすべてのオプションを使用してみましたが、カレンダーの選択された日付を設定することしかできませんでした。

protected void Page_Load(object sender, EventArgs e)
    Calendar1.SelectedDate = DateTime.Today;
}

前のコードでは、SelectedDateを今日に設定していましたが、選択を強調表示しませんでした。

ただし、次のコードを選択して強調表示するには、適切に機能します。

protected void Page_Load(object sender, EventArgs e)
{
    DateTime today = DateTime.Today;
    Calendar1.TodaysDate = today;
    Calendar1.SelectedDate = Calendar1.TodaysDate;
}

このリンクを確認してください: http://msdn.Microsoft.com/en-us/library/8k0f6h1h(v = VS.85).aspx

7
Samer Makary

それを行う2つの方法。

遅延バインディング

<asp:Calendar ID="planning" runat="server" SelectedDate="<%# DateTime.Now %>"></asp:Calendar>

背後のコード(Page_Loadソリューション)

protected void Page_Load(object sender, EventArgs e)
{
    BindCalendar();
}

private void BindCalendar()
{
    planning.SelectedDate = DateTime.Today;
}

ただし、BindMyStuffの方法から行うことを強くお勧めします。デバッグが簡単な単一のエントリポイント。しかし、あなたはあなたのゲームを知っているように見えるので、あなたはすべて準備ができています。

6
Pascal Paradis

私は上記のコードで上記を試してみましたが、動作していません、ここにasp.netカレンダーコントロールで選択された現在の日付を設定する解決策があります

dtpStartDate.SelectedDate = Convert.ToDateTime(DateTime.Now.Date);
dtpStartDate.VisibleDate = Convert.ToDateTime(DateTime.Now.ToString());
4
user1235809

実際、aspxで選択した日付を取得できません。コードで選択した日付を設定する方法は次のとおりです。

protected void Page_Load(object sender, EventArgs e)
{
   if (!Page.IsPostBack)
   {
      DateTime dt = DateTime.Now.AddDays(-1);
      Calendar1.VisibleDate = dt;
      Calendar1.SelectedDate = dt;
      Calendar1.TodaysDate = dt;
      ...
    }
 }

上記の例では、デフォルトの選択日を昨日に設定する必要があります。重要な点は、TodayDateを設定することです。それ以外の場合、選択されたカレンダーの日付は常に今日です。

0
David.Chu.ca

私もVWD 2010で同じ問題を抱えており、偶然にも2つのコントロールがありました。 1つはコードビハインドで利用でき、もう1つはアクセスできませんでした。コントロール内のステートメントの順序が問題の原因であると考えました。 「SelectedDate」の前に「runat」を置くと、それが修正されたようです。 「SelectedDate」の後に「runat」を配置しても、まだ機能していました!残念ながら、なぜ機能しなかったのかわからず、機能しなかったオリジナルを入手していません。

これらはすべて機能するようになりました:

<asp:Calendar ID="calDateFrom" SelectedDate="08/02/2011" SelectionMode="Day" runat="server"></asp:Calendar>
<asp:Calendar runat="server" SelectionMode="Day" SelectedDate="08/15/2011 12:00:00 AM" ID="Calendar1" VisibleDate="08/03/2011 12:00:00 AM"></asp:Calendar>
<asp:Calendar SelectionMode="Day" SelectedDate="08/31/2011 12:00:00 AM" runat="server" ID="calDateTo"></asp:Calendar>
0
gaz