3

次の 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 フィールドです。
日付と時刻の両方ではなく、日付のみを表示したい。2012 年 7 月 25 日 BoundField
に追加DateFormatString="{0:d}"すると、Gridview を表示するときにうまく機能します。ただし、編集リンクをクリックして日付を更新すると、次のように表示されます: 7/25/2012 12:00:00 AM DateFormatString は編集モードでは無視されます。編集/更新モードで時間を削除する方法を教えてください。ユーザーが日付だけを扱うことは望ましくありません。

4

2 に答える 2

9

連結フィールドの編集モードで書式設定が機能するように、次のプロパティが設定されていることを確認してください。

DataFormatString = ({0:d})
ApplyFormatInEditMode = True

コードで以下のように変更するだけで、正常に動作するはずです

<asp:BoundField DataField="SNAPSHOT_DATA_DATE" HeaderText="Snapshot Date" ApplyFormatInEditMode="true" SortExpression="SNAPSHOT_DATA_DATE" DataFormatString="{0:d}"  />
于 2012-11-07T21:24:53.790 に答える
2

yyyy/MM/dd私は特に、次のような時間なしで日付をフォーマットしたいと考えていました。

string dateString = DateTime.Now.ToString("yyyy/MM/dd");

これを行うDataFormatStringために、BoundField の属性にフォーマットを追加しました。

<asp:BoundField DataField="DatePosted" HeaderText="Date" DataFormatString="{0:yyyy/MM/dd}" />
于 2017-06-26T11:53:00.737 に答える