2009-03-09 13 views
8

Tengo una casilla de verificación de entrada que está marcada y deshabilitada cuando se ejecuta JS en la carga de la página.Deshabilitado Marque la casilla de verificación como desmarcada - ASP.NET

<input name="selectUnionDues" id="selectUnionDues" type="checkbox" checked="checked" runat="server" /> 

Cuando consigo el valor de la casilla de verificación mediante el uso (en el lado del servidor)

this.selectUnionDues.checked //returns false 

siempre me dan una falsa

EDIT: Estoy preocupado por el uso de ASP pesada. controles netos ya que el tamaño de página en esta aplicación debe ser bajo. ¿Hay alguna salida usando los controles HTMl?

Respuesta

0

Obtengo un comportamiento menos intuitivo también. Si pruebo el valor en Page_Init, siempre devuelve verdadero. Al probarlo en Page_Load, se devuelve el valor seleccionado.

Pruebe usar un control del lado del servidor en lugar de un control HTML con runat = server.

<asp:CheckBox ID="selectUnionDues" runat="server" Checked="true" /> 

Además, indica el control "deshabilitado" pero no veo nada que esté deshabilitado en su marcado. De cualquier manera, es mejor usar un servidor WebControl.

+0

Entre Page_Init y Page_Load hay más métodos de ciclo de vida de la página (que puede anular si lo desea): LoadViewState y LoadPostData. Ambos pueden cambiar los valores en los controles. –

0

Si no le importa confiar en JS, podría tener una entrada oculta cuyo valor cambia cuando cambie la propiedad de verificación de la casilla de verificación y luego usar ese valor en el lado del servidor.

+0

Por cierto, supongo que no sería un problema confiar en JS porque JS es lo que está causando que la casilla de verificación se deshabilite. – Charlino

3

mira esto http://www.4guysfromrolla.com/articles/012506-1.aspx

En resumen, (1) hay una propiedad "SubmitDisabledControls" de "forma" o (2) ajustar el javascript, el autor proporciona

+0

Esto no siempre funciona; Estaba deshabilitando tablas, lleno de controles por el método sugerido [aquí] (http://forums.asp.net/p/1121242/3109517.aspx) e impedía que 'SubmitDisabledControls' funcionara correctamente. Tuve que deshabilitar todos los controles en la tabla por separado para que se comportara. Pero gracias por el consejo. –

1

Si deshabilita el casilla de verificación, siempre devuelve falso. la mejor idea es hacer que la casilla de verificación sea de solo lectura, de modo que devuelva el valor tal como está. hacer el readonly="readonly".

0

Aunque la pregunta original era sobre control HtmlInputCheckBox, creo que será útil mencionar que existe un problema similar para el control Checkbox, para el cual la imagen es más complicada, porque hay una diferencia entre Enabled = "False" y disabled = "deshabilitado". Publiqué los resultados de la investigación aquí: ASP.Net Checkbox.Checked is set to default when use disabled attribute or difference between Enabled property and disabled attribute. Específicamente, explica por qué se restablece la propiedad comprobada cuando se utiliza el atributo deshabilitado y por qué no se restablece cuando se utiliza la propiedad del servidor habilitado.

Cuestiones relacionadas