使用月份名称动态绑定下拉列表

时间:2021-03-15 10:14:33

标签: c# asp.net webforms dropdown

我在我的网页中放置了一个下拉列表,然后添加以下代码以将项目绑定到页面加载事件中的下拉列表。

在本例中是带有月份名称的下拉列表。

当月份更改时,在此下拉列表中,不再显示之前的月份,并且在下个月的 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;
        }

    }
}

enter image description here

0 个答案:

没有答案
相关问题