Ich verwende Modell mit dem Entity Framework verbindlich und hat einen Html.TextBoxFor (Modell => model.date) Eingang. Ich weiß, wie man jQuery sagt, wie man einen Datepicker implementiert, aber nicht in diesem Zusammenhang. Was müsste ich hier hinzufügen, um ein Kalender-Popup zu erhalten, wenn der Benutzer dieses Feld öffnet?Wie beurteilen Sie die jQuery UI Datepicker mit Html.TextBoxFor MVC verwenden?
Antwort
Sie wollen die Htmlhelper Überlastung verwenden, die Sie HTML-Attribute angeben können. Richte sie dann mit dem jquery-Selektor aus.
// in view
<%= Html.TextBoxFor(x => x.Date, new { @class="datepicker" })%>
// in js
$(document).ready({
$('.datepicker').datepicker();
});
Obwohl ich empfehle, stattdessen EditorFor
zu verwenden.
<%= Html.EditorFor(x => x.Date)%>
Sie können eine EditorTemplate erstellen ein beliebiges Feld zu behandeln, die eine DateTime
ist und haben es das richtige Feld ausgegeben.
erstellen /Views/Shared/EditorTemplates/DateTime.ascx
und setzen diese in ihm ...
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime>" %>
<%= Html.TextBox("", Model.ToShortDateString(), new { @class="datepicker" })%>
oder wenn Sie Datetime ist mit Nullen ermöglichen:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime?>" %>
<%= Html.TextBox("", (Model.HasValue? Model.Value.ToShortDateString():""), new { @class="datepicker"})%>
Dann können Sie immer EditorFor verwenden und haben eine zentrale ascx zu bearbeiten, wenn Sie die Art und Weise ändern möchten, in der die Zeiten in Ihren Ansichten behandelt werden.
Von den Blicken des Codes Probe (TextBoxFor) Sie MVC2 verwenden ....
Hier ist ein Beispiel using MVC 2, die eine Vorlage erstellt, die die jQery Datumsauswahl rufen, wenn Sie ein Datum & ein zweites mehr verwenden in depth example.
Der zweite Link in Ihrer Antwort ist erstaunlich Dank !! – VoodooChild
gut, dass Sie mochte es .Net MVC auf jeden Fall eine Menge guter Nuggets in ihm hat – klabranche
eine EditorTemplate für den Typ Datetime erstellen und dann EditorFor statt TextBoxFor verwenden. Die Edit-Vorlage sollte eine Benutzersteuerung namens DateTime.ascx mit Code so etwas wie:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime>" %>
<%: Html.TextBox("", String.Format("{0:MM-dd-yyyy}", Model))%>
<script type="text/javascript">
$(document).ready(function() {
$("#<%: ViewData.ModelMetadata.PropertyName %>").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'mm-dd-yy',
showButtonPanel: true,
gotoCurrent: true
});
});
</script>
Check out Scott Hanselman Vortrag über MVC 2 auf Kanal 9. http://channel9.msdn.com/posts/matthijs/ASPNET-MVC-2-Basics-Introduction-by-Scott-Hanselman/
ich ähnlich mit einem Ansatz gehen würde zu Marc. Hier ist meine eigene Version davon:..
"%><%string name = ViewData.TemplateInfo.HtmlFieldPrefix;%>
<%string id = name.Replace(".", "_");%>
<div class="editor-label">
<%= Html.LabelFor(model => model) %>
</div>
<div class="editor-field">
<%= Html.TextBox("", (Model.HasValue ? Model.Value.ToString("dd-MM-yyyy") : string.Empty), new { @class = "date" }) %>
<%= Html.ValidationMessageFor(model => model)%>
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#<%=id%>").datepicker({
showOn: 'both',
dateFormat: 'dd-mm-yy',
changeMonth: true,
changeYear: true,
showOn: 'button',
buttonImage: '<%=Url.Content("~/Content/images/calendar.gif") %>'
});
});
</script>
erstellen Sie Ihre EditorTemplates Ordner unter dem freigegebenen Ordner und benennen Sie es DateTime.ascx
Es gibt Fehler in Ihrem Code, wenn ich es einfügen. – VoodooChild
- 1. Zeit aus ASP MVC @ Html.TextBoxFor entfernen Mit jQuery datepicker verwenden
- 2. Jeditable mit jQuery UI Datepicker
- 3. jQuery UI Datepicker Frage
- 4. jQuery UI Datepicker Datumsbereich
- 5. jQuery UI Datepicker Bindung
- 6. jQuery UI Datepicker Neufestsetzungstag
- 7. jQuery UI Datepicker Leistung
- 8. jQuery-UI Datepicker Standarddatum
- 9. jquery ui datepicker datumsformat
- 10. jQuery UI Datepicker Übersetzung
- 11. jQuery UI Datepicker mit jQuery tipsy
- 12. jQuery-UI Datepicker: Ziehbar?
- 13. Jquery Datepicker UI
- 14. Verwenden Sie jquery Datepicker in WordPress
- 15. MVC - JQuery Datepicker Ereignisse anzuzeigen
- 16. jQuery UI DatePicker: Überschreiben Sie heute css
- 17. Änderung jQuery UI Datepicker Format
- 18. JQuery UI Datepicker mit Zeit-Plugin
- 19. Ionic Popup mit jquery ui datepicker
- 20. jQuery UI nicht vollständig mit Datepicker Arbeits
- 21. Wie ändere ich jquery ui datepicker position?
- 22. jQuery UI Datepicker und datejs
- 23. JQuery UI Datepicker in angular2
- 24. JQuery UI Datepicker - So entfernen Sie die Schaltfläche "Fertig"
- 25. Kombinieren Sie die Lokalisierungs- und Initialisierungsparameter von jQuery-ui datepicker
- 26. Jquery ui Datepicker maxDate dynamisch
- 27. jQuery UI - Datepicker - Jahr ausblenden
- 28. jQuery UI Datepicker Heute Link
- 29. jQuery UI: Nur DatePicker CSS?
- 30. So entfernen Sie Zeit von DatePicker ui jquery
+1:.!. aber die 'DateTime.ascx' und EditorFor nicht für mich arbeiten schaffe ich nur die ascx Kontrolle' Ansichten/Shared hinzufügen/EditorTemplates/DateTime.ascx‘mit dem Code, den Sie Recht haben? was ist das' Model.ToShort..' ich aktualisiere? wo das Skript gehen in das? – VoodooChild
Wie Sie umfassen '<% = Html.TextBox' in' wie CX-Datei? Ich habe 'Html' undefined Fehler –