/ / ASP.NET GridView - ako povoliť validáciu deklaratívne - asp.net, validácia, gridview

ASP.NET GridView - ako povoliť validáciu deklaratívne - asp.net, validácia, gridview

Je možné povoliť validáciu v ASP.NET GridView čisto deklaratívne?

Čo som skúšal:

  • GridView viazaný na ObjectDataSource s definovanými SelectMethod a UpdateMethod

  • GridView obsahuje niektoré stĺpce ReadOnly BoundField a TemplateField, ktorého EditTemplate obsahuje TextBox a RegularExpressionValidator, ktorý umožňuje len numerické zadávanie v TextBoxe.

  • GridView obsahuje tiež CommandField s ShowEditButton = true a CausesValidation = true.

Ak kliknem na Upraviť, zadajte neplatnú hodnotu, potom kliknite na Uložiť, existuje PostBack a na serveri sa vyvolá výnimka (vstupný reťazec nebol v správnom formáte).

Tomu sa samozrejme môžem vyhnúť pridaním validáciekód do obsluhy udalostí RowUpdating na serveri (pozri nižšie), existuje však nejaký deklaratívny spôsob, ako vynútiť vykonanie validácie bez pridania tohto kódu?

protected void MyGridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
Page.Validate("MyValidationGroup");
if (!Page.IsValid)
{
e.Cancel = true;
}
}

odpovede:

0 pre odpoveď č. 1

Potrebujete ten kód.

„Okrem spoliehania sa na overenie na strane klienta je tiež dôležité, aby ste pri spracovaní udalosti po odoslaní zavolali aj stránku Page.IsValid.“

http://weblogs.asp.net/rajbk/archive/2007/03/15/page-isvalid-and-validate.aspx

aktualizovať

Aby ste sa vyhli kódu na štítku kotla, mohli by ste mať všetkostránky zdedia zo základnej triedy a všetky ovládacie prvky používateľov zdedia z inej základnej triedy. Základná trieda bude mať spoločnú logiku (ako je uvedená vyššie). Potom ju musíte buď manuálne prepojiť alebo prejsť stromom ovládania a udalosti automaticky prepojiť.

Osobne by som sa však držal toho, čo v súčasnosti máte.