このカレンダーコントロールを備えたaspxページがあるとします。
<asp:Calendar ID="Calendar1" runat="server" SelectedDate="" ></asp:Calendar>
コードビハインドを使用せずに、デフォルトで現在の日付を使用するためにSelectedDateに入力できるものはありますか?
既にデータバインディングを実行している場合:
<asp:Calendar ID="Calendar1" runat="server" SelectedDate="<%# DateTime.Today %>" />
それをします。これには、どこかでPage.DataBind()呼び出し(または親コントロールでのデータバインド呼び出し)を行う必要があります。それをしておらず、ページ上にコードビハインドが絶対に必要ない場合は、カレンダーコントロールを含み、その選択された日付を設定するユーザーコントロールを作成する必要があります。
DateTime.Nowは機能しません。代わりにDateTime.Todayを使用してください。
私はカレンダーがデフォルトで日付を選択し、ユーザーのためにそれを強調するようにしようとしていました。ただし、上記のすべてのオプションを使用してみましたが、カレンダーの選択された日付を設定することしかできませんでした。
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
それを行う2つの方法。
<asp:Calendar ID="planning" runat="server" SelectedDate="<%# DateTime.Now %>"></asp:Calendar>
protected void Page_Load(object sender, EventArgs e)
{
BindCalendar();
}
private void BindCalendar()
{
planning.SelectedDate = DateTime.Today;
}
ただし、BindMyStuffの方法から行うことを強くお勧めします。デバッグが簡単な単一のエントリポイント。しかし、あなたはあなたのゲームを知っているように見えるので、あなたはすべて準備ができています。
私は上記のコードで上記を試してみましたが、動作していません、ここにasp.netカレンダーコントロールで選択された現在の日付を設定する解決策があります
dtpStartDate.SelectedDate = Convert.ToDateTime(DateTime.Now.Date);
dtpStartDate.VisibleDate = Convert.ToDateTime(DateTime.Now.ToString());
実際、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を設定することです。それ以外の場合、選択されたカレンダーの日付は常に今日です。
私も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>