jQuery UI datepicker открывается автоматически в диалоговом окне

Вы можете использовать функцию в ретрансляторе, как вы сказали, но обратите внимание, что 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.

29
задан turezky 31 May 2009 в 16:42
поделиться

3 ответа

У меня была точно такая же проблема, и я решил ее с небольшим изменением техники Тванфоссона. По какой-то причине мне пришлось вручную прикрепить событие "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, но у меня нет необходимой репутации. )

15
ответ дан 28 November 2019 в 00:45
поделиться

Вы можете подумать о том, чтобы уничтожить средство выбора даты при закрытии диалогового окна и создать его в открытом обработчике событий для диалогового окна вместо того, чтобы включать его в качестве сценария при создании диалогового окна.

 $('#dialog').dialog({
     open: function(event, ui) {
        $(ui).find('#date').datepicker();
     },
     close: function(event,ui) {
        $(ui).find('#date').datepicker('destroy');
     }
 });

Вы также можете поэкспериментировать с различными событиями / методами, чтобы увидеть, действительно ли вам нужно воссоздать его, но я думаю, что это сработает.

8
ответ дан 28 November 2019 в 00:45
поделиться

У меня была похожая проблема. У меня есть 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 каждый раз, когда вы открываете и закрываете диалог.

2
ответ дан 28 November 2019 в 00:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: