2009-09-24 14 views
26

Gibt es eine gute freie/Open Source Zeit Picker-Steuerelement, die gut mit ASP.NET Calendar Control?ASP.NET DateTime Picker

+3

Haben Sie jQuery UI gesehen oder versucht? Es gibt einen Datetime-Picker, der hervorragend funktioniert. – Sebastian

+1

Hier ist der Link zu diesem Picker: http://milesich.com/timepicker/ –

+1

sebastian & John, ich habe nicht jquery versucht. Die Schnittstelle sieht gut aus, ich werde es versuchen. Danke noch einmal. – SoftwareGeek

Antwort

21

JQuery hat die beste datepicker IMHO. Obwohl es nicht spezifisch für .Net ist, funktioniert es immer noch großartig.

HTML:

<input type="text" value="9/23/2009" style="width: 100px;" readonly="readonly" name="Date" id="Date" class="hasDatepicker"/> 

Im Kopfelement:

<script src="../../Scripts/jquery-1.3.2.min.js" language="javascript" type="text/javascript"/> 
<script src="../../Scripts/jquery-ui-1.7.1.custom.min.js" type="text/javascript"/> 

So einfach ist das!

+1

+1 - Es ist derjenige, den ich benutze. – Martin

+5

@ Chuck-i akzeptierte Ihre Lösung, ließ Sie jedoch wissen, dass Ihnen die folgende Instanziierung fehlt, die für den Datepicker benötigt wird. '$ ("# Datum"). Datepicker();' – SoftwareGeek

+16

Bitte korrigieren Sie mich, wenn ich falsch liege, aber dieses jQuery-Steuerelement unterstützt nicht den "Zeit" -Teil von "DateTime". Liege ich falsch? Ich kann nicht sehen, wie dieses Steuerelement ein DateTime Picker ist, da es nur ein Datepicker ist. – dyslexicanaboko

8

Da es das einzige ist, die ich verwendet habe, würde ich die CalendarExtender vorschlagen von http://www.ajaxcontroltoolkit.com/

+1

Das letzte Mal, als ich versuchte, dieses Toolkit zu benutzen, gab ich das erste Mal auf, als ich etwas anpassen/erweitern musste. Der Quellcode war schrecklich. Ich hoffe natürlich, dass sie sich seitdem verbessert haben, aber basierend auf meiner Erfahrung (und dem Reichtum an besseren Ajax-Kontrolloptionen wie Ext, YUI, Dojo usw.) würde ich diese ganze Bibliothek wie die Pest meiden. –

+2

sshow, ich benutze ajaxcontroltoolkit für Kalender, aber es unterstützt keine Zeitkomponente – SoftwareGeek

+1

ist es möglich, dass der MaskedEdit Ihnen geben könnte, was Sie wollen? http://www.ajaxcontroltoolkit.com/MaskedEdit/MaskedEdit.aspx – sshow

3

Basic Date Picker Lite

Dies ist die kostenlose Version ihrer Flaggschiff-Produkt, aber es enthält ein Datum und Zeitauswahl nativen für asp.net.

29

Die Antwort auf Ihre Frage ist Ja, gibt es eine gute freie/Open-Source-Zeitauswahl Steuerung, die gut mit ASP.NET-Kalender-Steuerelement geht.

ASP.NET Calendar Steuerelement schreibt nur eine HTML-Tabelle.

Wenn Sie HTML5 und DOT.NET Framework 4.5 verwenden, können Sie stattdessen ASP.NET TextBox-Steuerelement verwenden und die TextMode-Eigenschaft auf "Datum" oder "Monat" oder "Woche" oder " Time "oder" DateTimeLocal "oder wenn Sie nicht entweder mit Chrome oder Firefox oder Internet Explorer verwenden, können Sie diese Eigenschaft auch auf" DateTime "einstellen.

Lesen Sie dann die Eigenschaft Text, um das Datum, die Uhrzeit, den Monat oder die Woche als Zeichenfolge aus der TextBox abzurufen.

Wenn Sie DOT.NET Framework 4.0 oder eine ältere Version verwenden, können Sie entweder html5 input type = "date" oder input type = "month" oder input type = "week" oder input type = "time" verwenden oder input type = "datetime-local" oder wenn Sie nicht entweder mit Chrome oder Firefox oder Internet Explorer verwenden, dann können Sie auch den Eingabetyp = "datetime" verwenden.

Wenn Sie auf dem Server-Seite Code benötigen (geschrieben in entweder C# oder Visual Basic) die Information, dass die Benutzereingabe in dem Datumsfeld, dann können Sie versuchen, dieses Element auf dem Server ausgeführt werden, indem innerhalb des Eingangs-Tages zu schreiben runat="server"

Geben Sie diesem Element auch eine ID, damit Sie auf den serverseitigen Code zugreifen können. Lesen Sie die Value-Eigenschaft, um das Eingabedatum, die Uhrzeit, den Monat oder die Woche als Zeichenfolge abzurufen. Wenn Sie dieses Element nicht auf dem Server ausführen können, benötigen Sie zusätzlich zum Eingabetyp = "date" oder "time" oder "month" oder "week" ein verstecktes Feld. In der Submit-Funktion (in Javascript geschrieben) setzen Sie den Wert des versteckten Feldes auf den Wert des Eingabetyps = "Datum" oder "Zeit" oder "Monat" oder "Woche" und dann auf der Serverseite Lesen Sie die Value-Eigenschaft dieses ausgeblendeten Felds auch als Zeichenfolge.

Sicher, dass das versteckte Feld Element des HTML auf dem Server ausgeführt werden kann.

Hoffe, dass hilft.

+1

Ziemlich gute Lösung. Ich frage mich, warum niemand es irgendwo sonst gepostet hat. – Vikas

+1

Während dies nicht direkt die Frage beantwortet, ist es die sauberste Lösung. Danke dafür. – sheppe

2

Es gibt eine einfache, out-of-the-box-Implementierung: die HTML 5 und die anderen datumbezogenen Eingabearten.

Okay, Sie können die Steuerelemente nicht so viel stylen und es doesn't work on every browser, aber es kann immer noch eine sehr gute Option auf lange Sicht sein, wenn alle modernen Browser es unterstützen und nicht schwere Bibliotheken, die nicht ' Auf mobilen Geräten funktioniert das immer gut.

2

Dies ist eine Lösung ohne Jquery.

Kalender und TextBox in Webformular hinzufügen -> Quelle von Web Form hat dies:

<asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="DateChange"> 
</asp:Calendar> 
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 

erstellen Methoden in cs-Datei von Web Form:

protected void Page_Load(object sender, EventArgs e) 
    { 
     TextBox1.Text = DateTime.Today.ToShortDateString()+'.'; 
    } 

    protected void DateChange(object sender, EventArgs e) 
    { 
     TextBox1.Text = Calendar1.SelectedDate.ToShortDateString() + '.'; 
    } 

Methode DateChange mit Kalenderereignis verbunden ist Selection. Es sieht so aus: DatePicker Image