Как получить значение DatePicker в бритве? - PullRequest
0 голосов
/ 03 апреля 2012

Вот моя проблема:

У меня есть текст ввода и пользовательский интерфейс выбора даты: и Я хотел бы получить значение DatePicker в бритве:

Index.cshtml

<input id="datePickerCalendar" type= "text"/>

<script type="text/javascript">

$(document).ready(function () {
    $('#datePickerCalendar').datepicker({
        altFormat: "dd-mm-yy",
        dayNamesMin: ["Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa"],
        monthNames: ["Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"],
        changeMonth: true,
        onSelect: function () {

            /*('#datePickerCalendar').change(loadCalendar());*/
        }
    });
});
</script>



<table border="1" class="tableCalendar" id="calendar">
<caption> Veuillez sélectionner l'horaire souhaité </caption>
<th id="court"></th>
@foreach(var item in Model)  {
  foreach(var court in item.TennisCourts){
      if (court.Outside == true)
      {
          <td id="court" class="court">Court n°@court.Number (Extérieur)</td>
      }
      else
      {
          <td id="court" class="court">Court n°@court.Number (Intérieur)</td>
      }
  }
}

@foreach (var item in Model)
{

    var chooseDate = $('#datePickerCalendar').value; // here ! This instruction is not correct...


}

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

Итак, мои вопросы:

1) Как получить значение из указателя даты в бритве?2) Как я могу получить значение каждый раз, когда пользователь меняет дату?

Заранее спасибо

1 Ответ

2 голосов
/ 04 апреля 2012

Вам необходимо опубликовать свое значение в методе действия на контроллере, окружить поле формой

@using (Html.BeginForm("Controller", "Action", FormMethod.Post))
{
}

Затем измените ваше поле на отображаемое на стороне сервера (чтобы связыватель модели мог захватить новое значение)

@Html.TextBoxFor(m => m.MyDate)

Метод действия должен принимать модель в качестве аргумента и иметь свойство DateTime с именем MyDate

редактирование: Если вы будете отправлять значения с сервера, вы должны быть уверены, что клиентский указатель даты и сервер используют один и тот же формат даты. Это немного сложно, но я сделал это с помощью плагина globalize jquery, вам нужно выбрать, хотите ли вы жестко закодировать культуру пользовательского интерфейса или сервер будет использовать клиентскую культуру. Это делается в web.config

HARDCODED

<globalization culture="se-SE" uiCulture="se-SE"  enableClientBasedCulture="false" />

Клиент выбирает

<globalization enableClientBasedCulture="true" />

edit2 Извините за все мои правки: D Хороший способ отправки настроек сервера, таких как datetime и т. Д., Состоит в том, чтобы создать представление бритвы настроек и изменить его тип mime на javascript, а также обязательно иметь кэширование, иначе клиент будет загружать его каждый раз

@{
    Layout = null;
    Response.Expires = 120;
    Response.CacheControl = "public";
    Response.ContentType = "text/javascript";
}

MyAppName = {};
MyAppName.settings = {
    culture: "@Thread.CurrentThread.CurrentCulture.Name",
    timeFormat: "@Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortTimePattern.ToLower()",
    dateFormat: "@Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern.ToLower().Replace("yyyy", "yy")",
}
...