2

这个错误把我吓坏了。事实证明,DetailsView 中的日期格式是错误的。这似乎是一个非常明显的错误,因为您只需要应用 DataFormatString 但正如您所见,我已经这样做了。我尝试了 {0:d} 和 {0:dd/MM/yyyy} 格式,并尝试将 BoundFields 替换为 TemplateField,其中我使用 Bind 函数并将格式字符串作为第二个参数。它显示正确的日期,但格式为 dd/MM/yyyy hh:mm:ss。

<asp:DetailsView DataSourceID="SqlDataSource1" runat="server" DefaultMode="Edit" AutoGenerateRows="false" ID="EditView" DataKeyNames="id" CssClass="editing-padding" AutoGenerateEditButton="true" OnModeChanging="EditView_ModeChanging" OnItemUpdating="EditView_ItemUpdating">
    <Fields>
        <asp:BoundField HeaderText="Startdato" DataField="start_time" DataFormatString="{0:dd/MM/yyyy}"/>
        <asp:BoundField HeaderText="Slutdato" DataField="end_time" DataFormatString="{0:dd/MM/yyyy}"/>
        <asp:TemplateField>
            <HeaderTemplate>
                Kommentar
            </HeaderTemplate>
            <EditItemTemplate>
                <asp:TextBox ID="commentBox" runat="server" Text='<%# Bind("comment") %>' TextMode="MultiLine" Width="300" Height="150"></asp:TextBox>
            </EditItemTemplate>
        </asp:TemplateField>
    </Fields>
    <RowStyle BackColor="White" />
</asp:DetailsView>

事先感谢您的帮助

4

1 回答 1

3

似乎 BoundFieldDataFormatString默认情况下仅应用只读模式指定的格式。尝试将ApplyFormatInEditMode="true"属性应用到您的 BoundField,如下所示:

<asp:BoundField HeaderText="Slutdato"
DataField="end_time" 
DataFormatString="{0:dd/MM/yyyy}" 
ApplyFormatInEditMode="true" />

希望有帮助,对我有用。

于 2014-04-15T07:39:19.033 回答