我为此尝试了各种代码,但失败了。 请帮我填写下拉菜单。 提前谢谢。
DropDownList2.Items.Clear();
DropDownList2.Items.Add("--Year--");
for (int i = 3;i>=0 ; i--)
{
Label1.Text = DateTime.Now.Year . ToString();
//DateTimeFormatInfo dinfo = new DateTimeFormatInfo();
int year= int .Parse ( Label1. Text);
Label1.Text = dinfo.GetMonthName(year);
int year= DateTime.Now.Year;
Label1.Text = year.ToString();
DropDownList2.Items.Add(year+i+ " ");
}
答案 0 :(得分:6)
让我们从简化代码开始。这部分很好:
DropDownList2.Items.Clear();
DropDownList2.Items.Add("--Year--");
但是你的尝试有几个问题。第一个是从3下降到0步进1会给你以前三年。因此,我们可以将您的for循环更改为从2年前到1年前的步骤。 Label1
似乎没有任何用途,所以我们也要消除它。您基本上只剩下几行获得当前年份,循环三次迭代,并根据循环中的计数器计算新年(转换为字符串),然后将其添加到您的列表中:
var currentYear = DateTime.Today.Year;
for (int i = 2; i >= 0; i--)
{
// Now just add an entry that's the current year minus the counter
DropDownList2.Items.Add((currentYear - i).ToString());
}
所以,用:
var currentYear = DateTime.Today.Year; // 2014
让我们循环:
i == 2
时,(currentYear - i).ToString()
为“2012”i == 1
时,(currentYear - i).ToString()
为“2013”i == 0
时,(currentYear - i).ToString()
为“2014”答案 1 :(得分:0)
基于这个问题,我认为您的要求是:
您可以使用以下代码获取当前年份和之前的2年:
var years = Enumerable.Range(DateTime.Now.Year - 2, 3)
.OrderByDescending(x => x);
然后在您的代码中使用它:
DropDownList2.Items.Clear();
DropDownList2.Items.Add("--Year--");
foreach(var year in years)
{
DropDownList2.Items.Add(year.ToString());
}
答案 2 :(得分:0)
// Clear items:
DropDownList1.Items.Clear();
// Add default item to the list
DropDownList1.Items.Add("--Year--");
// Start loop
for (int i = 0; i < 2; i++)
{
// For each pass add an item
// Add a number of years (negative, which will subtract) to current year
DropDownList1.Items.Add(DateTime.Now.AddYears(-i).Year.ToString());
}
很抱歉早些时候没有解释。
答案 3 :(得分:0)
DropDownList2.Items.Clear();
string[] itens = new string[4] {
"-- Year --",
DateTime.Today.Year.ToString(),
DateTime.Today.AddYears(-1).Year.ToString(),
DateTime.Today.AddYears(-2).Year.ToString()
};
DropDownList2.Items.AddRange(itens);
或者
DropDownList2.Items.Clear();
ListItem[] itens = new ListItem[4] {
new ListItem("-- Year --"),
new ListItem(DateTime.Today.Year.ToString()),
new ListItem(DateTime.Today.AddYears(-1).Year.ToString()),
new ListItem(DateTime.Today.AddYears(-2).Year.ToString())
};
DropDownList2.Items.AddRange(itens);