Umgang mit null-datetime in gridview
Ich habe ein gridview-Steuerelement in C# asp.net Web-4.5-Framework, das sehr gut funktioniert, bis ein null bewertet ist, bestanden für ein Feld ich bin der Formatierung als Datum..
hier ist mein template-Feld
<asp:templatefield>
<HeaderTemplate>
<asp:Label ID="lblHeadEmailFirstSendDate" runat="server" Text="1st Email<br />Target Date"></asp:Label>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblEmailFirstSendDate" runat="server" Text='<%# Convert.ToDateTime(Eval("EmailTargetFirstSendDate")).ToString("MM/dd/yyyy")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:Label runat="server" ID="txtEmailFirstSendDate" Text='<%#Convert.ToDateTime(Eval("EmailTargetFirstSendDate")).ToString("MM/dd/yyyy")%>'></asp:Label>
</EditItemTemplate>
</asp:templatefield>
Ich habe gesucht, hoch und niedrig, um eine Lösung zu finden, die sowohl mir erlaubt, das Datum zu formatieren und nicht eine Ausnahme generieren, wenn das Datum null ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier gehen Sie:
OK... fand ich ein nettes Lösungen (fast sofort nach der Veröffentlichung) Dank MaxOvrdr für die Antwort, aber ich konnte es nicht zu funktionieren. Ich gab Stan Kredit, wie er stupste mich in die richtige Richtung.
Fügte ich code hinter:
geändert und die Vorlage text-Feld:
<asp:TemplateField >
<HeaderTemplate>
<asp:Label ID="lblHeadEmailFirstSendDate" runat="server" Text="1st Email<br />Target Date"></asp:Label>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblEmailFirstSendDate" runat="server" Text='<%# GetDate(Eval("EmailTargetFirstSendDate"))%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:Label runat="server" ID="txtEmailFirstSendDate" Text='<%# GetDate(Eval("EmailTargetFirstSendDate"))%>'></asp:Label>
</EditItemTemplate>
</asp:TemplateField>
Und Wie Magie... es funktioniert!!! Vielen Dank an alle.
Typ
DateTime?
Dies ermöglicht es Ihnen null zuweisen, es
Hinzufügen das Fragezeichen verwandelt es in eine nullable-Typ
Binden Sie die Daten in der code-behind? In der
RowDataBound
Veranstaltung