TechEd 2007: ASP.NET Dynamic Data Controls
17.11.2007 | Gunnar
Uus asi, millega ASP.NET meid peatselt üllatab, on dünaamilised andmete kontrollerid. Nende abil saab kiiresti paari liigutusega luua vormid andmebaasi tabelites olevate andmete haldamiseks. Kuigi tegemist pole teab mis hiljuti tulnud uuendusega, on see siiski piisavalt huvitav teema, et see siingi üles võtta.
Julgen pakkuda, et lihtsamatel juhtudel, kus keerukamat loogikat süsteemis pole, tekib märkimisväärne ajaline kokkuhoid. Samuti tekib märgatav ajaline kokkuhoid suuremate saitide või andmebaaside korral, kus andmebaasi tabeleid on palju.
See kanne annab esimese ülevaate dünaamiliste andmevormide loomisest.
Andmebaas
Alustuseks loome andmebaasi, kus andmeid hakkame hoidma. Hoidumaks pikematest kirjeldustest annan edasi lihtsalt andmebaasi skeemi. Väljade tüübid suudab igaüks, kes näite läbi viitsib teha, ise välja mõelda või ära arvata.

Andmebaas, mida käesolevas näites kasutame.
Kõiki tabeleid luua pole vaja, aitab sellest, kui on olemas product ja manufacturer. Teised tabelid on vajalikud järgmiste kannete jaoks, mis mul parasjagu käsil on.
Visual Studio veebiprojekt
Nüüd on aga aeg avada Visual Studio 2008 ja luua uus veebiprojekt. Mina tegin kõige tavalisema veebiprojekti. Enne kui asume dynamic data controls-i teema kallale teeme ühe väikse ettevalmistuse ja defineerime web.config failis ära andmebaasi ühenduse stringi.
NB! Ühenduse string tuleb defineerida web.config faili <connectionStrings> sektsioonis.
Dünaamilistel andmekontrolleritel on üks vahva nõks. Kui andmebaasi ühenduse stringi pole ette öeldud, siis hakkavad nad seda ise otsima süsteemi konfiguratsioonist. Kui seal on ühenduse string olemas, siis võetakse see kasutusele. Kui ühenduse stringe on mitu, siis võetakse neist esimene.
Tootjate vorm
Esimesena lisame dünaamilise vormi tootjate tabeli manufacturer jaoks. Lisamine käib nagu ikka. Projekti peal paremat hiire nuppu ja edasi Add New Item… Seekord aga valime Web Form asemel Dynamic Data Web Form.

Aktiivseks valikuks on Dynamic Data Web Form. Vormile anname
nimeks Manufacturer.aspx
Vormile peame andma sama nime, mis talle vastaval tabelil. Edasi juhtub kõik juba iseenesest. Ekraanil, muide, näeb äsja loodud vorm välja suhteliselt mitte midagi ütlev.
Kui aga käima laseme, näeme ekraanil midagi sellist.
Selline näeb välja Manufacturer.aspx
tühja tabeli korral.
Et teemast mitte kõrvale kalduda, siis ID-d tuleb ka ise sisestada. Kuidas see automaatselt käima panna, sellest mõni teine kord. Peale kolme rea sisestamist näeb tootjate vorm minul välja selline.

Dünaamiline vorm tootjate info jaoks koos andmetega.
Peatume nüüd korraks selle sama vormi juures ja vaatame, mis siin on ja mis siin teha saab.
Andmete sorteerimine
Nagu ülemiselt pildilt näeme, on tootjate tabeli veergude päised lingid. Päises oleval lingil esimest korda hiirega klikkides sorteeritakse andmed vastava veeru järgi kasvavasse järjestusse. Teisel järjestikulisel klikkimisel sorteeritakse andmed kahanevasse järjestusse.
Tootjate tabel on sorteeritud tootja nime järgi
kahanevasse järjestusse
Andmete muutmine ja kustutamine
Andmete kustutamine on lihtne. Tuleb vaid Delete linki vastava rea ees vajutada ja rida kaob ilma, et meie käest keegi midagi küsiks. Andmete muutmine on natukese suurejoonelisem, sest andmeid saab muuta nii tabelis kui ka tabeli all olevas detail vaates.
Esimesena vaatame andmete muutmist tabelis. Kui vajutame tabelis rea ees olevat linki Edit, näidatakse meile vastavat rida redigeerimise vaates.

Tootjate tabelis on SonyEricsson-i rida redigeerimise rezhiimis.
Redigeeritava rea ette ilmuvad lingid Update ja Cancel. Neist esimesel klikkides salvestatakse muudatused andmebaasi, teisel klikkides muudatusi ei salvestata ning rida läheb tagasi vaatamise rezhiimi.
Teine võimalus on andmeid muuta rea detailvaates, mida näidatakse tabeli all. Rea detailvaates avamiseks tuleb klikkida rea ees oleval lingil Select.

Tootja SonyEricsson on avatud detailvaates. Detailvaate all näeme
samuti linke rea muutmiseks ja kustutamiseks.
Detailvaate tabeli all on samuti lingid rea muutmiseks ja kustutamiseks. Kui vajutame linki Edit, avatakse rida detailvaate tabelis redigeerimise rezhiimis.

Tootja SonyEricsson on avatud detailvaates redigeerimise rezhiimis.
Kui detailvaate tabel viia redigeerimise rezhiimi, tekivad tabeli alla eespoolt tuttavad lingid Update ja Cancel.
Kokkuvõtte
Esimene vaade dünaamiliste andmekontrolleritele on selleks korraks läbi. Järgmises ülevaates läheme jälle sammukese edasi, sest põnevaid asju on veel, millest juttu tuleb. Nägime, et andmete haldamise vorme on dynamic data controls-i abil suhteliselt lihtne teha. Dünaamiselt loodud vormid pakuvad meile välja pea kogu funktsionaalsuse mida vajame.
