Tengo una página con un CompareValidator en él:de error intermitente con CompareValidator - propiedad ValueToCompare es ""
<asp:textbox id="txtResponseDate" runat="server" />
<asp:requiredfieldvalidator id="rfvResponseDate" runat="server"
controltovalidate="txtResponseDate"
display="Dynamic"
errormessage="Date is required."
setfocusonerror="true">
</asp:requiredfieldvalidator>
<asp:comparevalidator id="cmvDate" runat="server"
controltovalidate="txtResponseDate"
display="Dynamic"
errormessage="Date must not be before today."
operator="GreaterThanEqual"
setfocusonerror="true"
type="Date">
</asp:comparevalidator>
En el código subyacente, establecemos la propiedad ValueToCompare así:
If Not IsPostBack Then
cmvDate.ValueToCompare = DateTime.Now.ToString("d")
End If
De forma intermitente (no podemos discernir un patrón), obtenemos el siguiente error:
"El valor '' de la propiedad ValueToCompare de 'cmvDate' no se puede convertir a tipo 'Fecha'."
Con una pila de llamadas de:
at System.Web.UI.WebControls.CompareValidator.ControlPropertiesValid()
at System.Web.UI.WebControls.BaseValidator.get_PropertiesValid()
at System.Web.UI.WebControls.BaseValidator.Validate()
at System.Web.UI.Page.Validate()
at System.Web.UI.Page.Validate(String validationGroup)
at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
Mi primer pensamiento fue algo extraño con el formato de fecha, pero estamos usando las fechas del Reino Unido, último error fue el 18 de julio, por lo que el ValueToCompare consigue el sistema a 18/07/2011. Lo configuré manualmente usando el depurador, y funcionó bien. ¿Alguien tiene ideas brillantes sobre por qué esto puede estar pasando?
- He comprobado el código - no hay ningún otro lugar en el que se establezca esto.
- Utilizando el depurador, he comprobado dos veces en la devolución de datos, y como se esperaba, este valor de propiedad se conserva.
¿Cuál es su 'CurrentCulture'? – VMAtm
¿Recibió el texto y luego se produjo el error? – VMAtm
@VMAtm - Nuestra cultura es en-UK, y no, no tenemos el texto. – Paddy