任何人都有一些用于 asp.net mvc 的下拉日期选择器

Posted

技术标签:

【中文标题】任何人都有一些用于 asp.net mvc 的下拉日期选择器【英文标题】:anybody has some dropdowns datepicker for asp.net mvc 【发布时间】:2011-01-28 14:35:25 【问题描述】:

任何人都知道我在哪里可以找到 html 帮助程序或将生成由 3 个下拉列表组成的日期选择器的东西?

【问题讨论】:

@Omu:您能否更具体地说明“三个下拉菜单”的含义? 我假设有一个日期、月份和年份的下拉列表? 是的,日/月/年的单独下拉菜单 【参考方案1】:

这是我的小帮手。

我相信这本身就是解释性的。可以调整以安排下拉菜单的顺序(月/日/年或日/月/年),如果您使用的是 .NET 4,则可以为名称设置默认参数。

编辑:清除文字以减少眼睛出血

/// <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());

【讨论】:

我猜它需要一些 javascript 来进行客户端约束,因为现在每个人都可以选择 2 月 31 日 是的,请务必将约束检查服务器端也放在。【参考方案2】:

Telerik has a library 的一些 ASP.Net MVC 控件是免费的。

它们作为辅助方法工作,看起来很不错。例如,DatePicker 的工作方式如下:

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

【讨论】:

不,那是一个带日历的日期选择器,我想要一个由 3 个下拉菜单组成的

以上是关于任何人都有一些用于 asp.net mvc 的下拉日期选择器的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC DropdownList 设置默认值时未选择任何内容

ASP.NET MVC DropDownList 选择值问题

下拉列表的 jQuery 在布局 ASP.NET MVC 5 中不起作用

ASP.NET MVC 视图需要将选定的下拉列表和日历日期传递给模型

如何在 C# 中为枚举值添加描述以与 ASP.NET MVC 中的下拉列表一起使用? [复制]

为啥 Bootstrap 不允许我在 ASP.NET MVC 页面中的下拉菜单上设置边距?