2011-05-06 14 views
6

Estoy haciendo algo como a continuación en una aplicación de formularios web;Agregando un mensaje de error al resumen de validación desde el código detrás de

protected void button_transfer_search_Click(object sender, EventArgs e) { 

    Page.Validate("val1"); 

    if (!Page.IsValid && int.Parse(txtArrivalDateTrf.Text) + 5 < 10) { 
     return; 
    } 

Además, tengo el siguiente código en mi archivo aspx;

<div class="search-engine-validation-summary"> 
    <asp:ValidationSummary ValidationGroup="transfer" runat="server" ShowMessageBox="false" /> 
</div> 

mi pregunta es cómo agregar un mensaje de error a la página antes del retorno de modo que el resumen de validación puede agarrar ese y lo muestra. Sé que podemos hacer esto en mvc fácilmente, pero no he descubierto cómo hacerlo en los formularios web. Gracias !

+0

Por "antes de regresar", ¿quiere decir en el cliente antes de enviar el formulario? – IrishChieftain

+1

encontró la respuesta aquí: http://stackoverflow.com/questions/777889/on-postback-how-can-i-add-a-error-message-to-validation-summary casi el duplicado exacto: S bueno, se apesta: S – tugberk

+0

He votado mi propia pregunta para cerrar: S todavía necesito 4 votos chicos. ayudame aqui. – tugberk

Respuesta

9

Cada vez que encuentro esta situación esto es lo que hacer:

var val = new CustomValidator() 
{ 
    ErrorMessage = "This is my error message.", 
    Display = ValidatorDisplay.None, 
    IsValid = false, 
    ValidationGroup = vGroup 
}; 
val.ServerValidate += (object source, ServerValidateEventArgs args) => 
    { args.IsValid = false; }; 
Page.Validators.Add(val); 

Y en mi código ASPX que tienen un control ValidationSummary con un ValidationGroup establece en el mismo valor que vGroup.

Entonces, después de haber cargado el mayor número CustomValidators (o cualquier otro tipo de validadores) por código subyacente como yo quiero simplemente llamar

Page.Validate() 
if (Page.IsValid) 
{ 
    //... set your valid code here 
} 

La llamada a Page.Validate() llama al método lambda-ligado de todos código- detrás de validadores insertados y si alguno devuelve falso, la página no es válida y se devuelve sin código ejecutado. De lo contrario, la página devuelve un valor válido y ejecuta el código válido.

Cuestiones relacionadas