使用月份名称动态绑定下拉列表
Dynamically bind dropdown with months names
我在我的网页中放置了一个下拉列表,然后添加以下代码以将项目绑定到页面加载事件中的下拉列表。
在本例中是一个带有月份名称的下拉列表。
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Globalization;
using System;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack )
{
DD_Monthbind();
}
}
private void DD_Monthbind()
{
DateTimeFormatInfo info = DateTimeFormatInfo.GetInstance(null);
int currentMonth = DateTime.Now.Month;
for (int i = 1; i < 13; i++)
{
bool isMonthInPast = i < currentMonth;
if (!isMonthInPast)
DropDownList1.Items.Add(new ListItem(info.GetMonthName(i), i.ToString()));
}
}
}
在此下拉列表中,当月份更改时,不再显示前一个月或前几个月
例如
列表中日期为 2 月 1 日的 1 月份消失了。
我需要在下个月的 10 号之后不再显示上个月
你能帮帮我吗?
请尝试更改您的代码。
bool isMonthInPast = ((i+1) < currentMonth) || (i+1== currentMonth && DateTime.Now.Day>10);
我会做这样的事情。添加当前月份的月份,然后检查天数是否 <= 10。如果是,只需插入上个月。
private void DD_Monthbind()
{
DateTimeFormatInfo info = DateTimeFormatInfo.GetInstance(null);
DateTime today = DateTime.Now;
for (int i = today.Month; i <= 12; i++)
{
DropDownList1.Items.Add(new ListItem(info.GetMonthName(i), i.ToString()));
}
if (today.Day <= 10)
{
DropDownList1.Items.Insert(0, new ListItem(info.GetMonthName(today.AddMonths(-1).Month), today.AddMonths(-1).Month.ToString()));
}
}
您可以通过更改 today
来测试各种日期
DateTime today = DateTime.Now.AddMonths(5).AddDays(10);
我在我的网页中放置了一个下拉列表,然后添加以下代码以将项目绑定到页面加载事件中的下拉列表。
在本例中是一个带有月份名称的下拉列表。
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Globalization;
using System;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack )
{
DD_Monthbind();
}
}
private void DD_Monthbind()
{
DateTimeFormatInfo info = DateTimeFormatInfo.GetInstance(null);
int currentMonth = DateTime.Now.Month;
for (int i = 1; i < 13; i++)
{
bool isMonthInPast = i < currentMonth;
if (!isMonthInPast)
DropDownList1.Items.Add(new ListItem(info.GetMonthName(i), i.ToString()));
}
}
}
在此下拉列表中,当月份更改时,不再显示前一个月或前几个月
例如
列表中日期为 2 月 1 日的 1 月份消失了。
我需要在下个月的 10 号之后不再显示上个月
你能帮帮我吗?
请尝试更改您的代码。
bool isMonthInPast = ((i+1) < currentMonth) || (i+1== currentMonth && DateTime.Now.Day>10);
我会做这样的事情。添加当前月份的月份,然后检查天数是否 <= 10。如果是,只需插入上个月。
private void DD_Monthbind()
{
DateTimeFormatInfo info = DateTimeFormatInfo.GetInstance(null);
DateTime today = DateTime.Now;
for (int i = today.Month; i <= 12; i++)
{
DropDownList1.Items.Add(new ListItem(info.GetMonthName(i), i.ToString()));
}
if (today.Day <= 10)
{
DropDownList1.Items.Insert(0, new ListItem(info.GetMonthName(today.AddMonths(-1).Month), today.AddMonths(-1).Month.ToString()));
}
}
您可以通过更改 today
DateTime today = DateTime.Now.AddMonths(5).AddDays(10);