Подтвердить что ты не робот

Выберите текущую дату по умолчанию в элементе управления ASP.Net Calendar

Скажем, у меня есть страница aspx с этим элементом управления календарем:

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

Есть ли что-нибудь, что я могу внести в SelectedDate, чтобы использовать текущую дату по умолчанию, не имея необходимости использовать код?

4b9b3361

Ответ 1

Если вы уже делаете привязку данных:

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

Сделай это. Это требует, чтобы где-то вы выполняли вызов Page.DataBind() (или вызов привязки данных в родительском элементе управления). Если вы этого не делаете, и вам абсолютно не нужно кодовое имя на странице, вам нужно будет создать пользовательский элемент управления, который содержит элемент управления календарем и устанавливает его выбранную дату.

Ответ 2

DateTime.Now не будет работать, вместо этого используйте DateTime.Today.

Ответ 3

Два способа сделать это.

Поздняя привязка

<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.Now;
}

Напротив, я настоятельно рекомендую сделать это с помощью метода BindMyStuff. Одной точкой входа легче отлаживать. Но, поскольку вы, кажется, знаете свою игру, вы все настроены.

Ответ 4

Я пытался сделать календарь выбранным по дате по умолчанию и подсвечивает его для пользователя. Тем не менее, я попытался использовать все вышеперечисленные опции, но мне удалось установить только выбранную дату календаря.

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

Ответ 5

Я пробовал выше с вышеуказанным кодом, но не работал. Вот решение установить текущую дату, выбранную в календарном управлении asp.net

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

Ответ 6

У меня тоже была такая же проблема в VWD 2010, и, случайно, у меня было два элемента управления. Один из них был доступен в коде, и один из них не был доступен. Я думал, что порядок высказываний в контроле вызывает эту проблему. Я поставил "runat" перед "SelectedDate", и это, казалось, исправить. Когда я поставил "runat" после "SelectedDate", он все еще работает! К сожалению, я теперь не знаю, почему это не сработало и у меня нет оригинала, который не работал.

Теперь все работают: -

<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>

Ответ 7

На самом деле, я не могу получить выбранную дату в 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. В противном случае выбранная дата календаря всегда будет сегодня.