Раньше, до asp.net 4.5, мы могли легко привязать дату к Gridview, Formview или другому элементу управления с привязкой к данным и сделать его презентабельным с помощью простой строки формата.
<asp:TextBox
ID="DateFieldTextBox"
runat="server"
Text='<%# Bind("DateField","{0:d}") %>'/>
Новая строго типизированная привязка модели немного сложнее.
<asp:TextBox
ID="DateFieldTextBox"
runat="server"
Text='<%# BindItem.DateField %>'/>
будет работать, но выдает полную строку даты/времени, а не только дату.
<asp:TextBox
ID="DateFieldTextBox"
runat="server"
Text='<%# BindItem.DateField.ToShortDateString() %>'/>
.. это должно работать, но выдает ошибку времени компиляции «Недопустимый синтаксис кода для BindItem». Item.DateField.ToShortDateString() работает, но не привязывается к обратной передаче.
На данный момент мы вернулись к старому синтаксису, но мы хотели бы получить современную проверку времени компиляции, но при этом иметь возможность красиво форматировать даты. Кто-нибудь еще сталкивался с этим раньше?
'<%# string.Format(CultureInfo.CurrentCulture, "{0:d}", BindItem.InfoBirthday) %>'
, он говорит: Сообщение об ошибке компилятора: CS0103: имя «BindItem» не существует в текущем контексте - person Nikola Bogdanović   schedule 23.07.2013Eval
(отражение поздней привязки), а вместо этогоContainer.DataItem
:string.Format("{0:d}", ((DataRowView)Container.DataItem)["DateField"])
- person Nikola Bogdanović   schedule 30.07.2013