2017-05-10 4 views
1

Ich habe eine Gridview, mit einer Datetime-Spalte wie folgt definiert:TextBox mit Textmode = „Datum“ nicht Daten

<asp:TemplateField> 
    <EditItemTemplate> 
    <asp:TextBox ID="txtDate" Text='<%# Item.Date.ToShortDateString() %>' runat="server" TextMode="Date"></asp:TextBox> 
    </EditItemTemplate> 
    <ItemTemplate> 
    <asp:Label ID="lblDate" runat="server" Text='<%# Item.Date.ToShortDateString() %>'></asp:Label> 
    </ItemTemplate> 
</asp:TemplateField> 

Das Datum wird im Raster angezeigt wird, und es wird korrekt gespeichert, wenn ich bearbeiten eine Reihe vom Gitter. Das einzige Problem ist, dass "txtDate" den aktuellen Wert nicht anzeigt, wenn man in den "Bearbeitungsmodus" einer Zeile eintritt. Es zeigt "mm/dd/yyyy" anstelle des tatsächlichen Werts an, der von der Bindung kommt. Und ich weiß nicht warum. Wenn ich jedoch die Eigenschaft TextMode = "Date" entferne, wird der tatsächliche Wert korrekt angezeigt.

Irgendwelche Ideen? Vielen Dank!

Antwort

2

Dies tritt in Google Chrome auf, wenn der Browser das angegebene Datum nicht analysieren kann. Sie sollten darüber in der Browser-Konsole gewarnt werden. Google Chrome erwartet das Format yyyy-MM-dd, also z. B .:

Item.Date.ToString("yyyy-MM-dd"); 
+0

Vielen Dank! Das hat funktioniert! – Diana

Verwandte Themen