在下拉列表中设置日期格式

时间:2013-06-17 11:18:21

标签: c# asp.net

我正在从数据集(_dsst)中检索日期值,并在下拉列表(drpStartYear)中填充它们。

由于我将日期存储为datetime数据类型,因此我将日期值设为 mm-dd-yyyy 00:00:00 ,其中 00:00:00 是时间。但我需要在下拉列表中以 dd-mm-yyyy 格式获取日期。我尝试使用 datatextformatstring ,但它无效。

以下是代码:

 drpStartYear.DataSource = _dstt.Tables["tbSettings"].DefaultView;    
 drpStartYear.DataValueField = "StartDate";    

 drpStartYear.DataTextFormatString = "{0:d}";   
 drpStartYear.DataBind();    

5 个答案:

答案 0 :(得分:9)

drpStartYear.DataTextFormatString = "{0:dd-MM-yyyy}";

编辑:添加:

drpStartYear.DataTextField = "StartDate";

答案 1 :(得分:3)

您还必须设置DataTextField -

  drpStartYear.DataValueField = "StartDate";

  drpStartYear.DataTextField = "StartDate";
  drpStartYear.DataTextFormatString = "{0:dd-MM-yyyy}";
  drpStartYear.DataBind();

答案 2 :(得分:2)

drpStartYear.DataTextFormatString = "{0:dd-MM-yyyy}";
drpStartYear.DataTextField = "StartDate";

或者您可以在标记中设置如下:

<asp:DropDownList
id="drpStartYear"
runat="server"
DataTextField = "StartDate"
DataTextFormatString="{0:dd-MM-yyyy}"/>

答案 3 :(得分:0)

下面的代码对我有用,我使用DataValueField,它不允许我使用DataTextFormatString,所以当我把它改成DataTextField时,我得到了预期的结果:)

 drpStartYear.DataSource = _dstt.Tables["tbSettings"].DefaultView;    
 drpStartYear.DataTextField = "StartDate";  

 drpStartYear.DataTextFormatString = "{0:d}";   
 drpStartYear.DataBind();  

答案 4 :(得分:-1)

你有没有尝试过:

drpStartYear.DataTextFormatString = "0:dd/MM/yyyy HH:mm:ss";