2008-10-15 20 views
5

Related Articlepágina ASP.NET Validación

En un tema similar al del artículo anterior, pero de un punto de vista más específico. ¿Cómo se manejan exactamente los elementos que están en viewstate (para que estén incluidos en el envío), pero también se pueden cambiar a través de AJAX? Por ejemplo, supongamos que tenemos una lista desplegable que se llenó a través de una llamada de servicio web AJAX (no un panel de actualización). ¿Cómo puedo obtener la página para validar una vez que se han cambiado los elementos de la lista desplegable?

Respuesta

3

No está validando la lista desplegable ¿verdad? Está validando el valor que seleccionó un usuario. Es prácticamente el mismo consejo que la otra publicación, ya que javascript u otras herramientas pueden alterar el html o crear sus propios POST, usted siempre debe validar en el lado del servidor. Asuma que todas las solicitudes de los clientes pueden ser manipuladas, y suponga que no ha ocurrido ninguna validación del lado del cliente.


Si está utilizando el modelo de formularios web ....

Si sólo desea comprobar un valor seleccionado en el menú desplegable myAjaxDropDown, utilice el

<asp:RequiredFieldValidator id="dropdownRequiredFieldValidator" 
      ControlToValidate="myAjaxDropDown" 
      Display="Static" 
      InitialValue="" runat=server> 
      * 
     </asp:RequiredFieldValidator> 

Usted podría también quiere mirar el asp: CustomValidator - para la validación del lado del servidor:

<asp:CustomValidator ID="myCustomValidator" runat="server" 
    onservervalidate="myCustomValidator_ServerValidate" 
    ErrorMessage="Bad Value" /> 

Ambos PLU g en el marco de validación de asp.net. p.ej. al hacer clic en un botón llamado SumbitButton

protected void myCustomValidator_ServerValidate(object source, ServerValidateEventArgs e) 
{ 
    // determine validity for this custom validator 
    e.IsValid = DropdownValueInRange(myAjaxDropDown.SelectedItem.Value); 
} 

protected void SubmitButton_Click(object source, EventArgs e) 
{ 
    Validate(); 
    if(!IsValid) 
     return; 

    // validators pass. Continue processing. 
} 

Algunos enlaces para la lectura adicional:

0

¿por qué no validar onChange incluso en la lista desplegable?

sólo tiene que añadir el gestor de guión y añadir esa propiedad a la onchange en el evento Page_Load

 
' Creating the javascript function to validate 
Dim js As String 
js = "function validateDDL1(ddl) { alert(ddl.value); }" 

' Adding onChange javascript method 
DropDownList1.Attributes.Add("onchange", "validateDDL1(this);") 

' Registering the javascript 
ScriptManager.RegisterClientScriptBlock(Me, GetType(String), "validateDDL1(ddl)", js, True) 
1

Puede llamar a la función Page_Validate() de su código JavaScript, que dará lugar a los validadores ASP.NET del página, es básicamente similar a Page.Validate() en el código de servidor

Cuestiones relacionadas