2013-06-18 3 views
1

Эта ошибка вызывает у меня ошибку. Оказывается, формат даты в DetailsView оказывается неправильным. Это кажется довольно очевидной ошибкой, поскольку вам просто нужно применить DataFormatString, но, как видите, я уже это сделал. Я пробовал форматы {0: d} и {0: dd/MM/yyyy}, и я попытался заменить BoundFields на TemplateField, где я использую функцию Bind со строкой формата в качестве второго параметра. Он показывает правильную дату, но в формате dd/MM/yyyy hh: mm: ss.Формат даты в ASP.NET в DetailsView

<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> 

Спасибо за помощь заранее

ответ

1

кажется, что BoundField применяется только форматирование, указанное DataFormatString в только для чтения режима по умолчанию. Попробуйте применить атрибут ApplyFormatInEditMode="true" к вашему BoundField, например, так:

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

Надежда, что помогает, работал для меня.

Смежные вопросы