2009-09-24 36 views
26

¿Hay algún buen control de selector de tiempo de fuente libre/abierta que vaya bien con el control de calendario de ASP.NET?ASP.NET DateTime Picker

+3

¿Has visto o probado jQuery UI? Hay un selector de fecha y hora que funciona excelente. – Sebastian

+1

Aquí está el enlace a ese selector: http://milesich.com/timepicker/ –

+1

sebastian & john, no he intentado jquery. La interfaz se ve genial, voy a intentarlo. gracias de nuevo. – SoftwareGeek

Respuesta

21

jQuery tiene la mejor datepicker en mi humilde opinión. Si bien no es específico de .Net todavía funciona de maravilla.

HTML:

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

en el elemento de cabeza:

<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"/> 

simple como eso!

+1

+1 - Es el que yo uso. – Martin

+5

@ Chuck-i aceptó su solución pero le informa que se está perdiendo la siguiente instanciación que se necesita para el selector de fecha. '$ ("# Fecha"). Datepicker();' – SoftwareGeek

+16

Corrígeme si me equivoco, pero este control jQuery no admite la parte "Tiempo" de "DateTime". ¿Me equivoco? No puedo ver cómo este control es un Selector de fecha y hora, ya que es solo un Datepicker. – dyslexicanaboko

8

Puesto que es el único que he usado, sugeriría la CalendarExtender de http://www.ajaxcontroltoolkit.com/

+1

La última vez que traté de usar este kit de herramientas me rendí la primera vez que necesitaba personalizar/ampliar algo. El código fuente fue más que horrible. Ciertamente espero que hayan mejorado desde entonces, pero de acuerdo con mi experiencia (y la riqueza de mejores opciones de control de Ajax como Ext, YUI, Dojo, etc.) evitaría toda esta biblioteca como la peste. –

+2

sshow, estoy usando ajaxcontroltoolkit para el calendario pero no es compatible con el componente de tiempo – SoftwareGeek

+1

¿es posible que MaskedEdit pueda darle lo que quiere? http://www.ajaxcontroltoolkit.com/MaskedEdit/MaskedEdit.aspx – sshow

29

La respuesta a su pregunta es , hay un buen control de selector de tiempo de fuente libre/abierta que va bien con el control de calendario de ASP.NET.

ASP.NET El control de calendario simplemente escribe una tabla html.

Si está utilizando HTML5 y DOT.NET Framework 4.5, puede usar el control ASP.NET TextBox y establecer la propiedad TextMode en "Fecha", o "Mes", o "Semana", o " Time "o" DateTimeLocal "o si es no utilizando Chrome o Firefox o Internet Explorer, entonces también puede establecer esta propiedad a" DateTime ".

A continuación, lea la propiedad Texto para obtener la fecha, o la hora, el mes o la semana como una cadena de TextBox.

Si está utilizando DOT.NET Framework 4.0 o una versión anterior, puede usar ya sea html5 input type = "date" o input type = "month" o input type = "week" o input type = "time" o tipo de entrada = "datetime-local" o si usted es no usando Chrome o Firefox o Internet Explorer, entonces también puede usar input type = "datetime".

Si necesita en el código del lado del servidor (escrito en C# o Visual Basic) la información que ingresa el usuario en el campo de fecha, puede intentar ejecutar este elemento en el servidor escribiendo dentro de la etiqueta de entrada runat="server"

También dale a este elemento una identificación, para que pueda acceder a él en el código del lado del servidor. Lea la propiedad Value para obtener la fecha de entrada, la hora, el mes o la semana como cadena. Si no puede ejecutar este elemento en el servidor, necesita un campo oculto además del tipo de entrada = "fecha" o "hora" o "mes" o "semana". En la función enviar (escrita en javascript) establezca el valor del campo oculto en el valor del tipo de entrada = "fecha", o "hora", o "mes", o "semana", y luego en el lado del servidor código, lea la propiedad Value de ese campo oculto como cadena también.

Seguro de que el elemento de campo oculto del html puede ejecutarse en el servidor.

Espero que ayude.

+1

Bastante buena solución. Me pregunto por qué nadie lo publicó en otro lugar. – Vikas

+1

Si bien esto no responde directamente a la pregunta, es la solución más limpia. Gracias por esto. – sheppe

2

Existe una implementación sencilla y lista para usar: el HTML 5 input type="date" y los otros tipos de entrada relacionados con la fecha.

Bien, no se puede modificar el estilo de los controles y mucho doesn't work on every browser, pero aún puede ser una muy buena opción a largo plazo si todos los navegadores modernos lo admiten y no desean incluir bibliotecas pesadas que no funcionan Siempre funciona bien en dispositivos móviles.

2

Esta es una solución sin jquery.

Añadir calendario y cuadro de texto en el formulario Web -> Fuente de WebForm tiene esta:

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

Crear métodos de archivo de formulario Web cs:

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() + '.'; 
    } 

Método DateChange está conectado con el evento de calendario SelectionChanged. Se ve así: DatePicker Image