Os comento un tema que me paso con un TexBox (o caja de texto) de ASP.NET que tiene una fácil solución pero que me dio muchos quebraderos de cabeza la cosa.
El tema es que tenia un texbox de solo lectura, con la propiedad 'readonly' establecida a true, apra que el usuario no pudiese cambiar la caja de texto. Esta caja de texto era una caja de texto de totales donde mediante un script de javascript se establece el total de una factura.
El caso es que este total precalculado, tenía que meterlo en la base de datos cuando el usuario grabara la factura, al pulsar sobre el botón 'grabar'. Pero cual es mi sorpresa que al hacer el postback, el valor del campo introducido con JavaScript, no se conservaba y siempre era 'null'.
Después de indagar mucho en el tema, parece ser que la culpa la tiene la propiedad 'readonly' establecida desde las propiedades de ASP.NET. Si esta propiedad está establecida, al hacer el postback los valores de los campos que tengan readonly = true no se transmiten al servidor.
Por tanto al intentar establecer el valor de este campo, con una función JavaScript en el lado del cliente el valor de dicho campo no se transmite y le perdemos.
TxtBxImporte.Attributes.Add("readonly", "readonly");
Con esto establecemos el atributo readonly pero como propiedad HTML del campo directamente y solventamos el problema. Para ASP.NET ese campo no es 'readonly' (porque su propiedad está establecida a true), pero para el navegador, del lado del cliente es un campo readonly.
Espero que esto os sirva.
Un saludo.

No hay comentarios.:
Publicar un comentario