2010-03-17 4 views
3

quelqu'un sait où puis-je trouver un assistant html ou quelque chose qui va générer un datpicker composé de 3 listes déroulantes?quelqu'un a des listes déroulantes datepicker pour asp.net mvc

+0

@Omu: Pouvez-vous être plus précis sur ce que vous entendez par « trois » dropdowns? – TFD

+0

Je suppose une liste déroulante pour le jour, le mois et l'année? – Omar

+0

oui, des listes déroulantes séparées pour le jour/mois/année – Omu

Répondre

3

Ceci est ma petite aide.

Explicite, je crois. Peut être modifié pour organiser l'ordre des listes déroulantes (Mois/Jour/Année ou Jour/Mois/Année), et si vous utilisez .NET 4, vous pouvez mettre des paramètres par défaut pour les noms.

Edit: éclairci le texte pour réduire les saignements oculaires

/// <summary> 
/// Creates a days, months, years drop down list using an HTML select control. 
/// The parameters represent the value of the "name" attribute on the select control. 
/// </summary> 
/// <param name="dayName">"Name" attribute of the day drop down list.</param> 
/// <param name="monthName">"Name" attribute of the month drop down list.</param> 
/// <param name="yearName">"Name" attribute of the year drop down list.</param> 
/// <returns></returns> 
public static string DatePickerDropDowns(this HtmlHelper html, string dayName, string monthName, string yearName) 
{ 
    TagBuilder daysList = new TagBuilder("select"); 
    TagBuilder monthsList = new TagBuilder("select"); 
    TagBuilder yearsList = new TagBuilder("select"); 

    daysList.Attributes.Add("name", dayName); 
    monthsList.Attributes.Add("name", monthName); 
    yearsList.Attributes.Add("name", yearName); 

    StringBuilder days = new StringBuilder(); 
    StringBuilder months = new StringBuilder(); 
    StringBuilder years = new StringBuilder(); 

    int beginYear = DateTime.UtcNow.Year - 100; 
    int endYear = DateTime.UtcNow.Year; 

    for (int i = 1; i <= 31; i++) 
     days.AppendFormat("<option value='{0}'>{0}</option>", i); 

    for (int i = 1; i <= 12; i++) 
     months.AppendFormat("<option value='{0}'>{0}</option>", i); 

    for (int i = beginYear; i <= endYear; i++) 
     years.AppendFormat("<option value='{0}'>{0}</option>", i); 

    daysList.InnerHtml = days.ToString(); 
    monthsList.InnerHtml = months.ToString(); 
    yearsList.InnerHtml = years.ToString(); 

    return string.Concat(daysList.ToString(), monthsList.ToString(), yearsList.ToString()); 
} 
+0

Je suppose qu'il faut un javascript pour les contraintes côté client, parce que tout le monde sera en mesure de sélectionner 31 février – Omu

+0

Ouais, assurez-vous simplement de mettre le côté serveur de vérification des contraintes aussi. – Omar

-1

Telerik has a library de certains contrôles ASP.Net MVC qui est libre.

Ils fonctionnent comme des méthodes d'assistance et semblent plutôt bien. Par exemple, le DatePicker fonctionne comme ceci:

<%= Html.Telerik().DatePicker() 
     .Name("DatePicker") 
     .MinDate(Model.MinDate.Value) 
     .MaxDate(Model.MaxDate.Value) 
     .Value(Model.SelectedDate.Value) 
     .ShowButton(Model.ShowButton.Value) 
%> 
+0

non, c'est une datepicker avec un calendrier, je veux un composé à partir de 3 listes déroulantes – Omu

Questions connexes