Gridview BoundField在编辑/更新模式下从DateTime中删除时间

时间:2012-11-07 21:07:55

标签: asp.net datetime gridview edit boundfield

我有以下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。有人可以告诉我如何在编辑/更新模式下删除时间吗?我不希望用户只处理时间日期。

2 个答案:

答案 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}" />