Vlastní parametr pro Data Source

Novinkou v asp.net 2.0 jsou prvky pro přístup k datům, souhrnně pojmenované jako Data Source controls. Tyto prvky umožňují deklarativním způsobem definovat základní operace práce s daty a umožnit tak rychlý vývoj jednoduchých webových aplikací.

Dotazy s parametry

Tyto datově orientované prvky používají ke zpřesnění dotazu, případně k předání informací, parametry. Což je v případě databázového přístupu doporučovaný postup, který chrání proti sql injection. Ale samozřejmě se nejedná jen o databázový přístup a tímto způsobem lze předávat parametry i pro ObjectDataSource.

Zdrojů pro parametr je několik, především se jedná o možnost získání hodnoty z Control, Form, Cookie, Profile, QueryString nebo Session. Pokud však potřebujeme získat parametr jinou cestou, musíme si vytvořit vlastní parametr.

Tvorba vlastního parametru

Na co se tedy připravit, když budeme chtít vytvořit třídu, která nám zprostředkuje vlastní hodnotu pro parametr? Potřebujeme pouze podědit od třídy System.Web.UI.WebControls.Parameter. V naší nové třídě potom přepíšeme metodu Evaluate(HttpContext context, Control control) a do jejího těla vložíme kód pro získání vlastní hodnoty.

Jednoduchá třída vlastního parametru tak může vypadat následovně:

public class DateParameter: Parameter {   protected override object Evaluate(HttpContext context, Control control) {    return DateTime.Now;  } }

Použití parametru

Vytvořený vlastní parametr budeme určitě chtít využít v deklarativním zápisu na stránce naší aplikace. První věc, kterou musíme udělat je registrace naší assembly a zaregistrování prefixu, to je stejné, jako bychom chtěli registrovat vlastní User/WebControl a to pomocí direktivy Register na stránce. (Případně můžeme využít web.config.)

Poté už nám nic nebrání použít takový parametr

 

a to nejen v Select parametrech, jak je uvedeno výše, ale i v Update, Insert, Delete parametrech příslušného DataSourceControlu.

Add a Comment