Sélectionner la date actuelle par défaut dans le contrôle de calendrier ASP.Net

StackOverflow https://stackoverflow.com/questions/86408

  •  01-07-2019
  •  | 
  •  

Question

Disons que j'ai une page aspx avec ce contrôle de calendrier:

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

Y a-t-il quelque chose que je puisse mettre dans SelectedDate pour lui faire utiliser la date du jour par défaut, sans avoir à utiliser le code-behind?

Était-ce utile?

La solution

Si vous utilisez déjà la liaison de données:

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

Je vais le faire. Cela nécessite que vous fassiez quelque part un appel Page.DataBind () (ou un appel databind sur un contrôle parent). Si vous ne le faites pas et que vous ne voulez absolument pas de code derrière la page, vous devrez créer un contrôle utilisateur contenant un contrôle de calendrier et définissant sa date sélectionnée.

Autres conseils

DateTime.Now ne fonctionnera pas, utilisez plutôt DateTime.Today .

J'essayais de faire en sorte que le calendrier sélectionne une date par défaut et la mette en surbrillance pour l'utilisateur. Cependant, j’ai essayé d’utiliser toutes les options ci-dessus, mais j’ai seulement réussi à définir la date choisie pour le calendrier.

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

le code précédent n'a PAS mis en évidence la sélection, bien qu'il ait défini la date sélectionnée à aujourd'hui.

Cependant, pour sélectionner et mettre en surbrillance le code suivant fonctionnera correctement.

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

vérifiez ce lien: http: // msdn .microsoft.com / fr-fr / library / 8k0f6h1h (v = VS.85) .aspx

Deux façons de le faire.

Liaison tardive

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

Code derrière le chemin (solution Page_Load)

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

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

Malgré tout, je vous recommande fortement de le faire de manière BindMyStuff. Point d'entrée unique plus facile à déboguer. Mais puisque vous semblez connaître votre jeu, vous êtes prêt.

J'ai essayé ci-dessus avec le code ci-dessus mais cela ne fonctionnait pas. Voici une solution pour définir la date actuelle sélectionnée dans le contrôle du calendrier asp.net

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

Moi aussi j'avais le même problème dans VWD 2010 et, par hasard, j'avais deux contrôles. L'une était disponible en code derrière et l'autre n'était pas accessible. Je pensais que l'ordre des déclarations dans les contrôles était à l'origine du problème. J'ai mis 'runat' avant 'SelectedDate' et cela a semblé résoudre le problème. Quand j'ai mis 'runat' après 'SelectedDate' ça fonctionnait toujours! Malheureusement, je ne sais maintenant pas pourquoi cela n'a pas fonctionné et si l'original n'a pas fonctionné.

Celles-ci fonctionnent maintenant: -

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

En fait, je ne peux pas obtenir la date sélectionnée dans aspx. Voici comment définir la date sélectionnée dans les codes:

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

Dans l'exemple ci-dessus, je dois définir la date sélectionnée par défaut sur hier. Le point clé est de définir TodayDate. Sinon, la date du calendrier sélectionnée est toujours aujourd'hui.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top