2009-06-11 10 views
11

Digamos que la página TestPage.aspx tiene dos controles. El primer control es un control de dirección que tiene un grupo de validación llamado "AddressGroup". Este grupo contiene varios controles de validación que están agrupados en el resumen de validación de ese control. El segundo control es un control de tarjeta de crédito y tiene un grupo de validación llamado "CreditCardGroup". También tiene varios validadores y un resumen para mostrar los resultados. Para agregar al problema, hay algunos controles aleatorios en la página que también tienen validadores que están vinculados a un tercer control ValidatorSummary.¿Activación de múltiples grupos de validación con un solo botón?

Cuando el usuario presiona el botón "Hacer todo", me gustaría que la página active los tres grupos de validación. El botón en sí puede estar vinculado a un solo grupo o a un grupo sin etiqueta. No puedo vincularlo a múltiples grupos, por lo que puedo decir.

La solución no es extraer la validación de los controles, ya que eso disminuiría el valor de tenerlos en controles separados. Gracias por tus pensamientos

Respuesta

5

¿Está hablando de la validación del lado del cliente o del lado del servidor? La respuesta de Jamie es perfecta para el lado del servidor, pero para la validación del lado del cliente probablemente necesite escribir su propia función JS que activará la validación en los tres grupos en concierto.

+7

Para JS, se podría llamar Page_ClientValidate(), esto dará lugar a la validación de todos los grupos en la página. – Ahmed

12

llamada al método de validación para cada grupo de validación de forma individual dentro de del botón de controlador de clic:

bool isValidTest = false; 
Validate("AddressGroup"); 
isValidTest = IsValid; 
Validate("CreditCardGroup"); 
isValidTest &= IsValid; 
// etc. 
if (!isValidTest) return; 

El siguiente problema que puede encontrar es que el control ValidationSummary está vinculado a un solo grupo de validación. La única forma en que he encontrado que se muestran todos los mensajes de error para varios grupos (sin tener que recorrer el árbol de control) es utilizar varios controles ValidationSummary.

Con controles de usuario, es posible que desee que su método Validate realice la validación de todos los controles que contiene y muestre su propio resumen.

Editado para agregar: La variable isValidTest no es necesaria. De acuerdo con los documentos:

Tenga en cuenta que cuando se llama al método Validate , la propiedad IsValid refleja la validez de todos los grupos validado hasta ahora.

2

llamada Page.Validate() en el lado del servidor se validará todos los validadores ..

Cuestiones relacionadas