我在我的网页中放置了一个下拉列表,然后添加以下代码以将项目绑定到页面加载事件中的下拉列表。
在本例中是带有月份名称的下拉列表。
当月份更改时,在此下拉列表中,不再显示之前的月份,并且在下个月的 20 日之后不再显示上个月。
我怎样才能从列表中排除列表中紧随其后的月份?
例如
此时在下拉列表月份列表中,我包含了从 2 月到 12 月的月份
在 2 月的第 20 天之后,我将在下拉列表中列出从 3 月到 12 月的月份
问题是在下拉列表月份只看到三月,而看不到接下来的几个月(从四月到十二月......)
public partial class DD_Monthbind : Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Monthbind();
}
}
private void Monthbind()
{
DateTimeFormatInfo info = DateTimeFormatInfo.GetInstance(null);
int currentMonth = DateTime.Now.Month;
for (int i = 1; i < 13; i++)
{
bool isMonthInPast = ((i + 1) < currentMonth) || (i + 1 == currentMonth && DateTime.Now.Day > 20);
if (!isMonthInPast)
DropDownList1.Items.Add(new ListItem(info.GetMonthName(i), i.ToString()));
}
}
}
更新
private void Monthbind()
{
DateTimeFormatInfo info = DateTimeFormatInfo.GetInstance(null);
int currentMonth = DateTime.Now.Month;
for (int i = 1; i < 13; i++)
{
bool isMonthInPast = (i < currentMonth) || (i == currentMonth && DateTime.Now.Day > 20);
if (!isMonthInPast)
{
DropDownList1.Items.Add(new ListItem(info.GetMonthName(i), i.ToString()));
}
}
foreach (ListItem item in DropDownList1.Items)
{
if (DropDownList1.Items.IndexOf(item) != 0)
{
item.Enabled = false;
}
}
}