我有以下GridView:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"
DataKeyNames="EVENT,TERM_CODE" DataSourceID="OracleDataSource" ShowHeaderWhenEmpty="True"
EnableViewState="False">
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:BoundField DataField="EVENT" HeaderText="Event" ReadOnly="True"
SortExpression="EVENT" />
<asp:BoundField DataField="TERM_CODE" HeaderText="Term Code" ReadOnly="True"
SortExpression="TERM_CODE" />
<asp:BoundField DataField="SNAPSHOT_DATA_DATE" HeaderText="Snapshot Date"
SortExpression="SNAPSHOT_DATA_DATE" DataFormatString="{0:d}" />
</Columns>
</asp:GridView>
SNAPSHOT_DATA_DATE列是数据库中的DateTime字段
我只想显示日期,而不是日期和时间。 7/25/2012
所以我将DateFormatString="{0:d}"
添加到BoundField中,这在查看Gridview时效果很好。但是,如果单击编辑链接以更新日期,则显示为:7/25/2012 12:00:00 AM在编辑模式下将忽略DateFormatString。有人可以告诉我如何在编辑/更新模式下删除时间吗?我不希望用户只处理时间日期。
答案 0 :(得分:7)
确保您已将格式化的以下属性设置为在“绑定”字段中的“编辑模式”下工作。
DataFormatString = ({0:d})
ApplyFormatInEditMode = True
在您的代码中,如果您只是修改如下,它应该可以正常工作
<asp:BoundField DataField="SNAPSHOT_DATA_DATE" HeaderText="Snapshot Date" ApplyFormatInEditMode="true" SortExpression="SNAPSHOT_DATA_DATE" DataFormatString="{0:d}" />
答案 1 :(得分:2)
我特意想将我的日期格式化为yyyy/MM/dd
,时间不等于以下内容:
string dateString = DateTime.Now.ToString("yyyy/MM/dd");
为此,我刚刚在BoundField的DataFormatString
属性上添加了格式:
<asp:BoundField DataField="DatePosted" HeaderText="Date" DataFormatString="{0:yyyy/MM/dd}" />