Встроенный указатель даты в MVC - PullRequest
1 голос
/ 07 июля 2011

Привет, у меня MVC создать с:

<div class="editor-label">
            @Html.LabelFor(model => model.Date)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Date)
            @Html.ValidationMessageFor(model => model.Date)
        </div>

Я подключил это, чтобы быть сборщиком jquery.

Затем я решил, что хочу, чтобы указатель даты был встроенным, как:

http://jqueryui.com/demos/datepicker/#inline

В нем говорится, что для этого вам нужно вызвать .datepicker() на div вместо ввода.

Хорошо, это нормально, но я думаю, это означает, что я не могу больше использовать @Html.EditorFor?

Кто-нибудь знает, как добиться этого для MVC?

Ответы [ 2 ]

2 голосов
/ 07 июля 2011

Вы можете использовать скрытое альтернативное поле:

<div class="editor-label">
    @Html.LabelFor(model => model.Date)
</div>
<div class="editor-field" id="datepicker">
    @Html.HiddenFor(model => model.Date)
    @Html.ValidationMessageFor(model => model.Date)
</div>

, а затем:

$('#datepicker').datepicker({
    altField: "#Date",    
});

или оставить @Html.EditorFor(x => x.Date) в своем виде и украсить свойство модели вида с помощью [HiddenInput] атрибут:

[HiddenInput]
public DateTime? Date { get; set; }
0 голосов
/ 07 июля 2011

Вы можете создать файл DateTime в папке EditorTemplates и отобразить div контейнера контейнера со скрытым полем ввода.Вы должны иметь что-то подобное в файле шаблона редактора для типа DateTime:

@model DateTime
@{
    var inputId = this.ViewData.ModelMetadata.PropertyName;
    var containerId = this.ViewData.ModelMetadata.PropertyName + "_container";
}

@Html.HiddenFor(x=>x)
<div id="@containerId"></div>
<script type="text/javascript">
    $("#@containerId").datepicker({
        onSelect: function (dateText, inst) {
            $("#@inputId").val(dateText);
        }
    });
</script>

Затем вы можете использовать синтаксис EditorFor, как вы делали раньше.См. http://blogs.msdn.com/b/nunos/archive/2010/02/08/quick-tips-about-asp-net-mvc-editor-templates.aspx для получения информации о шаблонах редактора.

...