2012-02-08 1 views
2

В моей модели у меня есть:ASP.NET MVC3: Отображение даты в правильном формате с JQuery DatePicker и editorFor/TextBoxFor

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")] 
    public DateTime StartDate { get; set; } 

К сожалению, это относится только к EditorFor, но я не могу назначить EditorFor класс, для включения Jquery Datetime picker, так как нет параметра htmlAttributes.

@Html.EditorFor(model => model.StartDate) 
@Html.TextBoxFor(model => model.StartDate, new { @class = "datePicker", @readonly = "readonly" }) 

Итак, первая показывает только дату, но не имеет даты. Второе показывает время слишком 00:00, но имеет datetimepicker.

Примечание: Не говорите, используйте model.StartDate.ToString("mm/DD/yyyy"). Это не работает.

Как установить только дату. Но имейте время для этого, и у меня есть только чтение, поэтому я не могу напечатать в нем какие-то числа.

+1

Меня интересует решение уровня MVC. Я решил использовать стандартные элементы ввода html для достижения этого эффекта в моем собственном проекте. –

ответ

2

Я использую DatePicker JQuery UI, который вместо того, добавляемый класс тег, я установил формат дату по умолчанию с помощью: привязать его к входному элементу

$(function() { 
     $.datepicker.setDefaults({ 
      dateFormat: 'dd/mm/yy' 
     }); 
    }); 

Тогда:

$(function() { 
     $("#StartDate").datepicker(); 
    }); 

Надеюсь, что помогает. И это на теге EditorFor mvc.

+0

Спасибо, Да, присваивание его по имени поля кажется единственным способом, поскольку вы не можете настроить html атрибуты aka classes. И используя мой индексный код, он может затем применить формат модели и использовать datetimepicker через это. Тем не менее, он все еще не читал. Мой выбор времени - еще одна проблема. Ive преодолел это с помощью '@ Html.TextBoxFor (model => model.EndTime, new {@Value = Model.EndTime.ToString(). Подстрока (0,5), @class =" timePicker ", @readonly =" readonly " }) '. сумасшествие – Doomsknight

Смежные вопросы