创建两个下拉列表的最佳方法是一个月(可能是月份名称),另一个下载多年?
他们应该使用以下格式返回两个值:1年(或2,3等)数月和2014年(或2013年,2012年等)多年
有什么建议吗?
答案 0 :(得分:4)
循环将是您解决方案的最佳选择。 创建一年的for循环,如下所示
for(int i=2000;i<2020;i++)
{
ddYear.Items.Add(new ListItem(i.ToString(), i.ToString());
}
和月份
DateTime month = Convert.ToDateTime("1/1/2000");
for (int i = 0; i < 12; i++)
{
DateTime NextMont = month.AddMonths(i);
ListItem list = new ListItem();
list.Text = NextMont.ToString("MMMM");
list.Value = NextMont.Month.ToString();
MyddlMonthList.Items.Add(list);
}
在VB中
Dim month As DateTime = Convert.ToDateTime("1/1/2000")
For i As Integer = 0 To 11
Dim NextMont As DateTime = month.AddMonths(i)
Dim list As New ListItem()
list.Text = NextMont.ToString("MMMM")
list.Value = NextMont.Month.ToString()
MyddlMonthList.Items.Add(list)
Next
答案 1 :(得分:0)
protected void Page_Load(object sender, EventArgs e)
{
DropDownList ddltmp = new DropDownList();
int curYear = DateTime.Now.Year;
for(int i = 1; i < 76; ++i)
{
ListItem tmp = new ListItem();
tmp.Value = curYear.ToString();
tmp.Text = curYear.ToString();
ddltmp.Items.Add(tmp);
curYear = DateTime.Now.AddYears(i).Year;
}
this.form1.Controls.Add(ddltmp);
}
答案 2 :(得分:0)
如果您希望获得前几年的当前年份,这是最简单的答案:)
int curYear = DateTime.Now.Year;
for (int i = curYear; i >= 2006; i--)
{
ddYear.Items.Add(i.ToString());
}
答案 3 :(得分:0)
其他方式我们可以这样做,
VB列表框,
Dim months = System.Globalization.DateTimeFormatInfo.InvariantInfo.MonthNames
For Each month As String In months
If Not String.IsNullOrEmpty(month) Then
ListBox1.Items.Add(month)
End If
Next
或者其他
ListBox1.DataSource = System.Globalization.DateTimeFormatInfo.InvariantInfo.MonthNames
VB Combobox,
Dim months = System.Globalization.DateTimeFormatInfo.InvariantInfo.MonthNames
For Each month As String In months
If Not String.IsNullOrEmpty(month) Then
ComboBox1.Items.Add(month)
End If
Next
或者其他
ComboBox1.DataSource = System.Globalization.DateTimeFormatInfo.InvariantInfo.MonthNames