asp.net - Render asp.TextBox para el tipo de entrada html5="fecha"
(6)
No sé si se ha preguntado antes, tampoco pude encontrarlo.
¿Es posible controlar el tipo de texto de entrada que se representa mediante un asp: TextBox? Me gustaría cambiarlo a <input type="date">
Cualquier sugerencia o comentario son bienvenidos, gracias.
Así es como lo hice ... espero que ayude ...
Agregue un nuevo elemento a su proyecto del tipo "Archivo JScript", luego pegue este código en:
var setNewType;
if (!setNewType) {
setNewType = window.onload = function() {
var a = document.getElementsByTagName(''input'');
for (var i = 0; i < a.length; i++) {
if (a[i].getAttribute(''xtype'')) {
a[i].setAttribute(''type'', a[i].getAttribute(''xtype''));
a[i].removeAttribute(''xtype'');
};
}
}
Ahora agregue esta línea en su página aspx después de la etiqueta del cuerpo (¡cambie el nombre del archivo a como lo llamó anteriormente!):
<script type="text/javascript" src="setNewType.js"></script>
Finalmente, agregue algo como lo siguiente a su código detrás de PageLoad (usé VB aquí):
aspTxtBxId.Attributes("xtype") = "tel" '' or whatever you want it to be
La parte importante anterior es los atributos. ("Xtype") , ya que coloca el atributo XTYPE en el html representado para el "cuadro de texto", que el javascript luego encuentra y usa para reemplazar el atributo "tipo" original.
¡Buena suerte!
FJF
En realidad, no hay una manera fácil de anular el atributo de tipo en standart asp: TextBox. Simplemente puedes usar un elemento de entrada
Aquí hay un ejemplo
<input type="date" id="Input1" runat="server" />
Déjame saber si ayuda ...
Hay una actualización para .NET framework 4 que le permite especificar el atributo de tipo
http://support.microsoft.com/kb/2468871 .
Ver la feature 3
en la página
Característica 3
La nueva sintaxis le permite definir un control TextBox que es compatible con HTML5. Por ejemplo, el siguiente código define un control TextBox que es compatible con HTML5:
<asp:TextBox runat="server" type="some-HTML5-type" />
Sé que esta pregunta es antigua, pero tuve el mismo problema en una aplicación de formularios web. Necesitas usar TextMode
Mientras que la documentación indica que
Use la propiedad TextMode para especificar cómo se muestra un control TextBox. Tres opciones comunes son el cuadro de texto de una línea, multilínea o contraseña.
También puede usar html5, fecha, hora, número, etc., construido en Visual Studio 2012/2013.
https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.textmode(v=vs.110).aspx
Si no le importa hacer subclases, puede hacerlo anulando AddAttributesToRender
public class DateTextbox : System.Web.UI.WebControls.TextBox
{
protected override void AddAttributesToRender(System.Web.UI.HtmlTextWriter writer)
{
writer.AddAttribute("type", "date");
base.AddAttributesToRender(writer);
}
}
Tomé la ruta de crear mi propio conjunto de entradas html5 mediante la creación de controles personalizados. Obtengo los teclados personalizados en iPad y iPhone, además de la codificación de devolución de datos de los verdaderos controles de asp.net. Funcionó para mi proyecto interno, así que decidí licenciar toda la suite para ahorrarle a otras personas el tiempo y la molestia de hacerlo desde cero.
¡Espero que esto ayude!