Creare dei form in maniera dinamica tramite database è un'ottima soluzione per gestire eventuali modifiche dei contenuti, aggiornamenti, ed avere un maggior controllo dei documenti e con ASP.NET tutto ciò è reso ancora più semplice.
In quest'articolo vedremo come popolare una drop down list e mostrare a schermo nella stessa pagina il risultato della selezione effettuata dall'utente, utilizzando gli oggetti Datagrid e Datareader di ASP.NET e ADO.NET, ed utilizzando la funzionalità di databinding (ossia di mappatura di una fonte dati su un oggetto).
Il progetto
Immaginiamo di dover gestire una piccola biblioteca online e creare una sezione in cui un utente possa vedere le opere relative ad un certo autore. Lo schema che dovremo utilizzare a grandi linee sarà quello mostrato in figura:

Il database
In questo esempio verrà utilizzato un database access2000 (autori.mdb), che trovate contenuto nell'allegato.
Ad ogni modo, la sua struttura è la seguente:
tblAutori
| AutoreID | contatore, primary key |
| nome | testo |
tblOpere
| AutoreID | numerico |
| Opera | test |
| Descrizione | memo |
La cosa fondamentale da notare è che il campo AutoreID della tabella tblOpere è una chiave esterna di AutoreID della tabella tblAutori, la quale funge infatti da tabella di ricerca; in questo modo attribuiremo un identificatore, un numero, a ciascuna opera, che così verrà "etichettata" come appartenente a quel determinato autore. Ogni autore infatti avrà il suo ID univoco.
Dopo aver creato e inserito i dati nelle nostre tabelle, dovremo metterne in relazione le due colonne AutoreID attraverso un diagramma relazioni.
Creiamo e popoliamo la dropdownlist
Con il prezzo di codice seguente, andremo a creare la dropdownlist ed utilizzando i datareader di ADO.NET, estrarremo i valori dal database per farli mostrare a video.
<html>
<head>
<title>Dropdownlist</title>
<!--
attraverso queste due direttive importiamo le librerie che ci serviranno per
effettuare le connessioni con Access2000
-->
<% @Import Namespace="System.Data" %>
<% @Import Namespace="System.Data.OleDb" %>
<script language="VB" runat="server">
Sub Page_Load(sender as Object, e as EventArgs)
'la proprietà IsPostBack del gestore di eventi (handler) Page_Load è impostata
'a true se la pagina è stata ricaricata, ad esempio attraverso un pulsante submit
'di un form. Questa è una proprietà molto utile per gestire i form ed eseguire routine
'di verifica.
If Not Page.IsPostBack then
'connessione al database
Dim strConn as string ="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & server.mappath("autori.mdb")
Dim objConn as New OleDbConnection(strConn)
'apro l`oggetto objConn
objConn.Open()
'imposto la query sql e inizializzo l`istanza dell`oggetto OleDbCommand
Dim strSQL as String = "SELECT * FROM tblAutori"
Dim objCommand as New OleDbCommand(strSQL, objConn)
'Creo/Popolo il DataReader e chiudo la connessione
'un DataReader in ADO.NET non è altro che un
'RecordSet aperto con un cursore forward-only
Dim objDataReader as OleDbDataReaderv
objDataReader = objCommand.ExecuteReader(CommandBehavior.CloseConnection)
'Databind dei dati alla drop down list;
'con questo metodo colleghiamo i dati
'al form nel codice html
lstAutori.DataSource = objDataReader
lstAutori.DataBind()
end if
End Sub
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<h4>Scegli l'autore</h4>
<!--
attraverso l'attributo DataTextField specifichiamo cosa verrà visualizzato nel menu, mentre
attraverso DataValueField la value di ciascuna option; questi due valori corrispondono ai
nomi delle colonne. L'attributo Rows specifica invece il numero di option visibili al
caricamento della pagina. Da notare che per default vengono mostrate tutte le opzioni.
-->
<form runat="Server">
<asp:listbox id="lstAutori" runat="server" Rows="1"
DataTextField="nome" DataValueField="autoreID" />
<!-- in questo spazio aggiungeremo il pulsante -->
</form>
<!-- in questo la datagrid -->
</body>
</html>
In questo modo abbiamo popolato il nostro form utilizzando i dati presenti nella tabella tblAutori, e possiamo procedere alla fase successiva.
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
- I nuovi controlli di ASP.NET 3.5: LinqDataSource, ListView e DataPager
- Galleria fotografica dinamica con ASP.NET AJAX
- Usare Search come un servizio nei tuoi siti e nei tuoi client
- Mappe nel tuo sito con Virtual Earth
- Integrare Windows Live ID, Contacts e Presence API nelle tue applicazioni
- Introduzione ai cloud based service con Windows Live Services
- Realizzare un custom extender AJAX con ASP.NET 3.5
- Tracciare le modifiche ai dati e allineare i datawarehouse con il Change Data Capture in SQL Server 2008
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.






Difficoltà

Stampa
Download


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!