Incercasem sa interceptez erorile din Master page – si nu intelegeam de ce nu merge. Pina mi-am adus aminte ca Master deriva din control – si ca, de fapt, este un control instantiat de pagina, nu invers…
Totusi, o functionalitate buna a Master este cea de afisare de erori la nivel central ( ca si cum ai avea un control de afisare erori).
In App_Code se adauga un fisier .cs de forma
 
 
public
			class
			ErrorAdd : IValidator
	
{
 
 
public ErrorAdd(string Message)
{
ErrorMessage = Message;
}
 
 
 
 
    public
			string ErrorMessage { get; set; }
	
 
 
 
 
    public
			bool IsValid
	
{
get
{
            return
			false;
	
}
set
{
 
 
}
}
 
 
    public
			void Validate()
	
{
 
 
}
 
 
}
(clar invalid…)
Apoi in Master adaugam un control ValidationSummary si urmatorul cod :
 public
			void AddTheError(string Message)
	
{
        ErrorAdd e = new
			ErrorAdd(Message);
	
this.Page.Validators.Add(e);
 
 
}
 
 
Cam de atit e nevoie … La orice cod de pe pagina – de pilda, pe evenimente, scrieti
try
{//cod
}
catch (Exception ex)
{
this.Master. AddTheError(ex.Message);
}
Singura problema pe care o vad este sa folosesti acelasi master pentru mai multe functionalitati …Nu vrei un God Object, nu-i asa?
 
					
		
Buna
Interesanta metoda,am incercat sa o aplic si eu, dar imi da eroare la apelul functiei AddTheError de pe pagina:
this.Master. AddTheError(ex.Message);
Eroarea est "System.Web.UI.Master does not contain a definition for ‘AddTheError’".
Vreo idee?
Multumesc
Gabi
Mda… Exista 2 posibilitati:
1. folosesti in declaratia de paginii aspx ce master ai
2. Convertesti Master-ul de pe pagina aspx la masterul tau, acolo unde ai adaugat AddTheError, ceva de genul:
MasterulMeu m= this.Master as MasterulMeu;
if(m != null)
{
m.AddTheError…
}