下拉显示文本作为值的变化asp.net c#

时间:2017-09-20 00:02:01

标签: c# asp.net date

我有一个下拉列表,以编程方式填充过去60天的日期(当前+ 59先前)。我想做的是使下拉列表的值格式化为yyyy-MM-dd,并将下拉文本显示给用户,例如:2017年2月23日星期六(格式:" ddd,dd) -MM-YYYY"。)

我可以同时获得它们,但无法弄清楚如何创建变体。

我是以正确的方式接近这个吗?你能给出的任何指针都会令人惊叹!

我填写c#下拉列表的代码是:

    List<ListItem> dateItems = new List<ListItem>();
    for (int i = 0; i < 60; i++)
    {
        dateItems.Add(new ListItem(DateTime.Now.AddDays(-i).ToString(format: "ddd, dd-MM-yyyy")));
    }
    recDate.DataSource = dateItems;
    recDate.DataBind();

    recDate.Items[0].Selected = true;

目前它在呈现的HTML中显示为:

<option value="Mon, 18-09-2017">Mon, 18-09-2017</option>

2 个答案:

答案 0 :(得分:1)

您可以改为使用this constructor

List<ListItem> dateItems = new List<ListItem>();
for (int i = 0; i < 60; i++)
{
    var date = DateTime.Now.AddDays(-i);
    dateItems.Add(new ListItem(date.ToString("ddd, dd-MM-yyyy"), date.ToString("yyyy-MM-dd")));
}
recDate.DataSource = dateItems;
recDate.DataBind();

recDate.Items[0].Selected = true;

答案 1 :(得分:0)

看来,这个难题的缺失部分是:

recordDate.DataValueField = "Value";
recordDate.DataTextField = "Text";
recordDate.DataSource = dateItems;
recordDate.DataBind();

WIN! : - )