我正在从数据集(_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();
答案 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";