2013-07-05 4 views
0

J'utilise AjaxToolKit Calendar Extender dans mon application pour que l'utilisateur puisse sélectionner sa date de naissance. La plupart des utilisateurs qui utiliseront le système auront plus de 60 ans, donc je veux que cela apparaisse comme vue par défaut quand la zone de texte ne contient aucun texte, j'ai mis le calendrier à ouvrir en mode année, mais je suis incapable d'obtenir par défaut à une date de 60 ans dans le passé sans avoir rien dans la zone de texte associée. Ce que j'essaye de réaliser est ce qui est l'image mais quand l'utilisateur ouvre le prolongateur de calendrier quand la zone de texte ne contient aucune valeur.AjaxToolKitCalendarExtender Définir Initial View Date

enter image description here

Répondre

0

@ccStars Essayez une combinaison de DefaultView, SelectedDate et PopupButtonID.

DefaultView: vous amènera au mode année que vous avez déjà fait. SelectedDate: définira une date à laquelle le calendrier est initialisé avec, PopupButtonID: l'ID d'un contrôle pour afficher la fenêtre contextuelle du calendrier lorsque vous cliquez dessus. Si cette valeur n'est pas définie, le calendrier apparaîtra lorsque la zone de texte recevra le focus. Ayez donc une petite icône de calendrier à côté de votre zone de texte et donnez son identifiant. Cela résoudra votre problème d'obtenir une date seulement quand il est sélectionné dans le calendrier.

Ci-dessus sont les propriétés côté serveur. Les propriétés côté client de votre intérêt sont:

selectedDate et visibleDate: la différence est que la selectedDate est la valeur représentée par la zone de texte, mais visibleDate est la date actuellement visible dans le calendrier.

Plus d'informations ici: http://www.asp.net/ajaxlibrary/act_calendar_reference.ashx

0

Vous pouvez essayer d'utiliser SelectedDate attribut, comme celui-ci du calendrier:

protected void Page_Load(object sender, EventArgs e) 
{ 
    calendarExtender.SelectedDate = DateTime.Today.AddYears(-60); 
    ... 
} 
+0

J'ai essayé et il affiche la date dans la zone de texte que je ne veux pas, la date ne doit appeat dans la zone de texte si elle a été sélectionnée/spécifiée par l'utilisateur – ccStars

+0

Je vois. Votre meilleur pari dans ce cas serait de faire des scripts côté client pour définir manuellement la décade à la valeur dont vous avez besoin. Soit cela, ou vous pouvez télécharger le code source pour l'extendeur et le modifier en fonction de vos besoins. – Cobra

+0

Je ne sais pas comment vous faites cela via Javascript J'ai regardé sur Internet mais je n'ai trouvé aucun exemple. – ccStars

0

Je sais qu'il n'y a pas une façon claire de le faire, mais si nous avons essayé un certain truquage du jury et essai?

Si vous définissez le SelectedDate en utilisant la réponse de Cobra ci-dessus, je suppose qu'il utilisera par défaut la bonne plage de dates.

Maintenant, si du côté client, vous avez fait du JavaScript pour effacer le TextBox, je me demande si le CalendarExtender conserverait les anciennes plages de dates? En utilisant jQuery, voici un script rapide pour le faire. L'hypothèse est que le TextBoxID est txtDateOfBirth et le ClientIDMode est défini sur Static.

$('#txtDateOfBirth').val(''); 
Questions connexes