sobota, 14. júla 2007

ASP.NET - ako zistiť, či už stránka bola validovaná?

V niektorých situáciach potrebujeme zistiť, či už prebehla validácia stránky. Ak by sme zavolali Page.IsValid ešte predtým ako prebehla validácia, tak by sme dostali výnimku. Moje riešenie tohto problému znázornené v nasledujúcej utilite využíva mechanizmus reflexie:


   1:  using System.Web;

   2:  using System.Web.UI;

   3:  using System.Reflection;

   4:   

   5:  public class PageUtil

   6:  {

   7:      public static bool IsPageValidated()

   8:      {

   9:          Page page = HttpContext.Current.Handler as Page;

  10:          if (page == null) throw new HttpException("This method can be called only in classes derived from System.Web.UI.Page");

  11:          FieldInfo fieldValidated = typeof(Page).GetField("_validated", BindingFlags.Instance  BindingFlags.NonPublic);

  12:          return (bool)fieldValidated.GetValue(page);

  13:      }

  14:  }

Žiadne komentáre: