我一直试图生成一个下拉列表,其中显示年份和月份。
下拉列表必须显示为1年,如下所示。
那应该是一个月的一年。
我正在使用此javascript在下拉列表中提交:
$('.dropdownMonthYear').change(function ()
{
var values = $('.dropdownMonthYear').val().split(",");
var month = values[0];
var year = values[1];
window.location = '/Garage/Top10Cars.aspx?month=' + month + '&year=' + year;
});
代码隐藏:
month = Convert.ToInt32(Request.QueryString["month"]);
year = Convert.ToInt32(Request.QueryString["year"]);
任何人都知道如何做到这一点?
答案 0 :(得分:4)
这是使用Linq
的一种方式:
var source = Enumerable.Range(0, 12)
.Select(i => new ListItem(DateTime.Today.AddMonths(-1 * i).ToString("MMM yyyy")));
DdlYearMonth.DataSource = source;
DdlYearMonth.DataBind();
Range
类似于for循环。在Select
我正在从ListItems
创建DateTimes
(从今天开始,每个循环返回一个月)。 ToString
采用格式字符串,将日期时间转换为具有指定格式的字符串。
Standard Date and Time Format Strings
如果您还想将ListItem的Value
属性设置为月份编号(1月份为f.e.1):
var source = Enumerable.Range(0, 12)
.Select(i => DateTime.Today.AddMonths(-1 * i))
.Select(d => new { Text = d.ToString("MMM yyyy"), Value = d.Month.ToString() });
DdlYearMonth.DataTextField = "Text";
DdlYearMonth.DataValueField = "Value";
DdlYearMonth.DataSource = source;
DdlYearMonth.DataBind();