2012-04-03 5 views
0

Hier mein Problem:Wie erhalte ich einen DatePicker-Wert im Rasierer?

Ich habe einen Eingabetext und hinter einer Datumsauswahl ui: und Ich mochte die picker Wert gestochen bekommen:

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... 


} 

Ich baue einen dynamischen Kalender, mit dem der Benutzer eine Reservierung für einen Tennisplatz machen kann ...

Also, meine Fragen sind:

1) Wie den Wert aus dem Datepicker gestochen zu bekommen? 2) Wie kann ich den Wert jedes Mal erhalten, wenn der Benutzer das Datum ändert?

Vielen Dank im Voraus

+0

Sie haben die Form zu schreiben, den Wert – Anders

+0

@Anders seine Frage ist verwirrend zu bekommen, aber er ist zu fragen, wie es in der Ansicht zu bekommen (er sagt Rasierapparat) – mattytommo

+0

Ich glaube, er will wissen, wie die schicken Daten an den Controller, aber ich kann falsch liegen: D Er mischt Razor und JavaScript-Code, sehr verwirrend – Anders

Antwort

2

Sie benötigen Wert auf eine Aktion-Methode auf dem Controller zu schreiben, umgibt das Feld mit einer Form

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

Dann wird Ihr Feld ein in eine Server-Seite ändert So gerendert (das Modell Bindemittel kann den neuen Wert erfassen)

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

die Aktion Methode das Modell als Argument nehmen muss, und es muss die Datetime Eigenschaft namens MyDate haben

edit: Wenn Sie Werte aus dem Server der Client picker sicher sein müssen sendet werden und die serer das gleiche Datumsformat verwendet. Das ist ein bisschen schwierig, aber ich habe das mit dem globize jquery plugin gemacht, Sie müssen wählen, ob Sie die ui-Kultur fest codieren wollen oder ob der Server die Client-Kultur verwenden wird. Dies ist in der web.config getan

Fest programmierte

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

Kunde wählt

<globalization enableClientBasedCulture="true" /> 

edit2 Sorry für alle meine Änderungen: D Eine gute Möglichkeit für Servereinstellungen wie Datetime Senden und So erstellen Sie eine Einstellung Rasierer Ansicht und ändern Sie ihre Mime-Typ zu Javascript, auch sicher sein, Caching, sonst wird der Client es jedes Mal laden

@{ 
    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")", 
} 
Verwandte Themen