Вы можете использовать функцию в ретрансляторе, как вы сказали, но обратите внимание, что DataBinder.Eval возвращает объект, и вам нужно привести его к DateTime.
Вы также можете отформатировать поле в строке:
<%# ((DateTime)DataBinder.Eval(Container.DataItem,"publishedDate")).ToString("yyyy-MMM-dd") %>
Если вы используете ASP.NET 2.0 или новее, вы можете написать это следующим образом:
<%# ((DateTime)Eval("publishedDate")).ToString("yyyy-MMM-dd") %>
Другой вариант - привязать значение для метки в событии OnItemDataBound.
У меня была точно такая же проблема, и я решил ее с небольшим изменением техники Тванфоссона. По какой-то причине мне пришлось вручную прикрепить событие "click" к полю datepicker, как показано ниже.
$('#dialog').dialog({
open: function(event, ui) {
$(ui).find('#date').datepicker().click(function(){
$(this).datepicker('show');
});
},
close: function(event,ui) {
$(ui).find('#date').datepicker('destroy');
}});
(Извините - я бы предпочел опубликовать это как комментарий к сообщению tvanfosson, но у меня нет необходимой репутации. )
Вы можете подумать о том, чтобы уничтожить средство выбора даты при закрытии диалогового окна и создать его в открытом обработчике событий для диалогового окна вместо того, чтобы включать его в качестве сценария при создании диалогового окна.
$('#dialog').dialog({
open: function(event, ui) {
$(ui).find('#date').datepicker();
},
close: function(event,ui) {
$(ui).find('#date').datepicker('destroy');
}
});
Вы также можете поэкспериментировать с различными событиями / методами, чтобы увидеть, действительно ли вам нужно воссоздать его, но я думаю, что это сработает.
У меня была похожая проблема. У меня есть DatePicker jQuery в диалоге jQuery UI. Сборник даты автоматически открывался в IE, когда я открыл диалог. Это не делало этого в Firefox или Chrome ... Я исправил проблему, отключая датутерию при создании в $ (документе). Это так:
$('.ConfirmMove #from').datepicker({
duration: ''
}).datepicker('disable');
, тогда, когда я открыл диалог, содержащий эту величину, я включил его в Обработчик открытого события диалогового окна:
$(".ConfirmMove").dialog({
close: function() {
$('.ConfirmMove #from').datepicker('disable');
},
open: function() {
$('.ConfirmMove #from').datepicker('enable');
}
});
Вы также должны помнить, чтобы отключить его обратно, когда закрываете диалог.
Таким образом, вы также не разрушаете и воссоздаете DatePicker каждый раз, когда вы открываете и закрываете диалог.