2010-04-23 12 views
65

¿Cómo presento la entrada deshabilitada en ASP.NET MVC?¿Cómo presento entrada deshabilitada en ASP.NET MVC?

+3

En general, debe formular su pregunta como una pregunta y luego publicar la respuesta por separado. Votación para cerrar; Le recomendamos que mueva la parte 'respuesta' a una respuesta real. –

+0

Creo que la publicación de @Dhaval es exactamente la respuesta debido a la palabra deshabilitada en su pregunta. – QMaster

Respuesta

28

Gracias a todos:

la forma en que resolvió este:

document.getElementById("Costo").readOnly = true; 
document.getElementById("Costo").style.color = "#c0c0c0"; 

Nota:

me dieron esta información en la respuesta pero me dio Editted.

+1

Esto no funcionó para mí (lo descubrí gracias a ** [este enlace SO]) (http://stackoverflow.com/questions/833884/why-does-a-read-only-textbox-does-not -return-any-data-in-asp-net) **). Esto funcionó: '' 'textBox.Attributes.Add (" readonly "," readonly ");' '' y la explicación se encuentra en el enlace –

+2

$ ("# textBoxId"). Prop ("readonly", true); –

+0

Está bien que lo hayas editado ya que tiene más sentido para mí. – Yawar

17

Normalmente, si tengo un campo que es "de solo lectura" pero debe enviarse de nuevo al servidor, deshabilitaré la pantalla (o simplemente el texto), pero luego agregaré un campo oculto con el mismo nombre . Aún debe asegurarse de que el campo no se haya modificado realmente en el lado del servidor, simplemente no lo actualice desde el modelo en su acción, pero el estado del modelo seguirá siendo preciso si hay errores.

+0

Sí, estaba pensando en hacer lo que estás ingiriendo. Pero tendría que manejar más variables. Estoy saltando que puede ser que mi publicación aparezca en google y la gente no tenga que sufrir, buscando una solución fácil. – Sanchitos

+4

Un problema con su solución es que se rompe si javascript está deshabilitado. Inyectar el lado del servidor del campo oculto no tiene este problema. – tvanfosson

101

¿No puedes hacer el campo readonly="readonly" en lugar de disabled="disabled"? Se enviará un valor de campo de solo lectura al servidor y el usuario aún no podrá editarlo. Sin embargo, una etiqueta SELECT es una excepción.

+0

solo funciona, pero no agota el campo. Aquí hay un ejemplo que estoy usando: '<%: Html.TextBoxFor (model => model.p1, new {@readonly =" readonly "})%>' ¿cómo puedo ponerlo gris? Visualmente parece que no lo está editable. Mejor aún, ¿podemos usar algo similar a LabelFor, probé LabelFor pero solo obtiene el DisplayName ... – VoodooChild

+10

4 años haciendo .NET asp y nunca supe que las entradas deshabilitadas no vuelven atrás ... ¿Cómo pasó eso? ¿yo? Solo incluya un campo Oculto para la selección deshabilitada y todo está ordenado. (Aunque los ID se repiten en el formulario que no está permitido) – ppumkin

+1

esto no funciona para los cuadros '