Pergunta

Vamos dizer que eu tenho uma página aspx com este controle de calendário:

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

Existe algo que eu possa colocar em para SelectedDate para torná-lo usar a data atual por padrão, sem ter que usar o código-behind?

Foi útil?

Solução

Se você já está fazendo a ligação de dados:

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

Irá fazê-lo. Isto requer que em algum lugar que você está fazendo uma chamada Page.DataBind () (ou uma chamada DataBind em um controle pai). Se você não está fazendo isso e você absolutamente não quer qualquer codebehind na página, então você terá que criar um UserControl que contém um controle de calendário e define sua SelectedDate.

Outras dicas

DateTime.Now não vai funcionar, use DateTime.Today em seu lugar.

Eu estava tentando fazer as seleciona calendário uma data por padrão e destaques lo para o usuário. No entanto, eu tentei usar todas as opções acima, mas eu só conseguiu definir a data selecionada do calendário.

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

O código anterior não realçar a seleção, embora definir o SelectedDate para hoje.

No entanto, para selecionar e destacar o seguinte código irá funcionar corretamente.

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

verificar este link: http: // MSDN .microsoft.com / en-us / library / 8k0f6h1h (v = VS.85) .aspx

Duas maneiras de fazê-lo.

ligação tardia

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

Código trás caminho (solução Page_Load)

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

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

Altough, recomendo vivamente a fazê-lo de uma maneira BindMyStuff. único ponto de entrada mais fácil de depurar. Mas desde que você parece saber o seu jogo, você está tudo definido.

Eu tentei acima com código acima, mas não funciona, aqui é solução para data atual conjunto selecionado no controle de calendário asp.net

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

Eu também tive o mesmo problema no VWD 2010 e, por acaso, eu tinha dois controles. Um deles era disponível em código por trás e não era acessível. Eu pensei que a ordem das declarações nos controles estava causando o problema. Eu coloquei 'runat' antes 'SelectedDate' e que parecia para corrigi-lo. Quando eu coloquei 'runat' depois 'SelectedDate' ainda funcionou! Infelizmente, agora eu não sei por que ele não fez trabalho e não tenho o original que não funcionou.

Estes agora todo o trabalho: -

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

data Na verdade, eu não posso ser selecionado no aspx. Aqui é a maneira de definir a data selecionada em códigos:

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

No exemplo acima, eu preciso definir a data padrão selecionado para ontem. O ponto-chave é definir TodayDate. Caso contrário, a data do calendário selecionado é sempre hoje.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top