我已修改数据表中的数据。尽管我仅需要Date,但ExpireDate列返回日期+时间。我已成功阅读每一行以返回正确的格式,但是如何将修改后的日期列返回到表中,以便可以在Web表单中显示它?
con.Open();
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
DataTable dt = new DataTable();
foreach (DataRow dr in dt.Rows)
{
dr["ExpireDate"] = DateTime.Parse((dr["ExpireDate"].ToString())).ToShortDateString();
}
sda.Fill(dt);
tblBoard.DataSource = dt;
tblBoard.DataBind();
con.Close();
}
这是网络表单:
<asp:GridView ID="tblBoard" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="FirstName" HeaderText="First Name" />
<asp:BoundField DataField="LastName" HeaderText="Last Name" />
<asp:BoundField DataField="ExpireDate" HeaderText="Expire Date" />
</Columns>
</asp:GridView>
表格中仍显示旧日期格式。
答案 0 :(得分:0)
请勿更改存储在DataTable
本身中的值...而是通过指定DataFormatString来修改显示给用户的显示方式:
<asp:BoundField DataField="ExpireDate"
HeaderText="Expire Date"
DataFormatString="{0:dd/MM/yyyy}" />
答案 1 :(得分:0)
如果您从后端更改日期格式,并且该日期未在前端显示,则请尝试删除浏览器的捕获,然后重试。
此外,无需在后端使用另外一种解决方案。直接将表数据绑定到网格视图数据源和仅前端集DataFormatString。
<asp:BoundField DataField="ExpireDate" HtmlEncode="false"
DataFormatString="{0:d}" />
或
<asp:BoundField DataField="ExpireDate" HtmlEncode="false"
DataFormatString="{0:MM/dd/yyyy}" />