这个错误让我很害怕。事实证明,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>
感谢您的帮助
最佳答案
默认情况下,BoundField 似乎仅在只读模式下应用 DataFormatString
指定的格式。尝试将 ApplyFormatInEditMode="true"
属性应用到 BoundField,如下所示:
<asp:BoundField HeaderText="Slutdato"
DataField="end_time"
DataFormatString="{0:dd/MM/yyyy}"
ApplyFormatInEditMode="true" />
希望对我有帮助,对我有用。
关于详细信息 View 中的 ASP.NET 日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17176341/