ASP.NET Modelbinding Formatting BindItem

Modelbinding ist eine feine Sache. Mit typisierten Daten und Intellisense-Unterstützung können Formulare erstellt werden. Für eine einfache Bindung wird das Schlüsselwort Bind verwendet.

In diesem Beispiel ist eine Klasse mit einem Property vom Typ Datum an ein Formview Control gebunden.

   1:  <ItemTemplate>
   2:   <label>Id:</label><%#Item.id%><br />
   3:   <label>Name:</label><%#Item.name%><br />
   4:   <label>Geburtsdatum:</label>  <%#Item.geburtstag.ToShortDateString%><br />
   5:   <asp:Button runat="server" ID="UpdateButton" CommandName="Edit" Text="Edit" />
   6:  </ItemTemplate>

Wenn man das Datum ohne Formatierung ausgibt, erhält man eine Anzeige wie 12.10.1955 00:00:00.  Also wird hier mit toShortDateString formatiert. Im Edit-Modus ist das etwas komplizierter bzw. erzeugt einen Laufzeit-Fehler, obwohl laut Intellisense und Compiler die Methode zur Verfügung steht.

DataBinding: System.DateTime enthält keine Eigenschaft mit dem Namen ToShortDateString.

Der einzig gefundene Workaround ist die bisherige Methode über Bind() zu verwenden.

   1:  <EditItemTemplate>
   2:    <label>Id:</label><%#Item.id%><br />
   3:    <label>Name:</label><asp:TextBox runat="server" ID="name1" required 
Text="<%#BindItem.name%>"></asp:TextBox><br />
   4:     <label>Geburtsdatum:</label><asp:TextBox runat="server" ID="TextBox1" 
   5:      Text='<%#Bind("geburtstag", "{0:yyyy/MM/dd}") %>' ></asp:TextBox><br />
   6:     <asp:Button runat="server" ID="SaveButton" CommandName="Update" Text="Save" />
   7:     <asp:Button runat="server" ID="CancelButton" CommandName="Cancel" Text="Cancel" />
   8:  </EditItemTemplate>
Kommentare sind geschlossen