di: Giuseppe Marchi 04 Luglio 2007
Tra le funzionalità più utili proprie dei controlli DataSource c'è l'utilizzo dei parametri. Possiamo filtrare la fonte di dati scelta tramite l'utilizzo di speciali controlli che prelevano le informazioni chiave dall'esterno del DataSource; per esempio, possiamo filtrare una query SQL in base al valore di una proprietà di un altro controllo Web presente all'interno della stessa pagina.
Riprendiamo l'esempio del controllo AccessDataSource, aggiungendo un parametro.
Listato 6. AccessDataSource con parametri
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/database.mdb"
SelectCommand="SELECT * FROM [Tabella] WHERE ([ID] = ?)">
<SelectParameters>
<asp:ControlParameter
ControlID="DropDownList1" Name="ID"
PropertyName="SelectedValue"
Type="Int32" />
</SelectParameters>
</asp:AccessDataSource>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="ID" DataSourceID="AccessDataSource1">
<Columns>
...
</Columns>
</asp:GridView>
In questo caso, abbiamo utilizzato come parametro il controllo ControlParameter, in grado appunto di prelevare informazioni da proprietà di altri controlli Web (nell'esempio, da una DropDownList), in modo tale da filtrare la nostra fonte di dati.
Altri tipi di parametri offerti dal Framework sono:
ControlParameter - preleva informazioni da una proprietà di un altro controllo presente all'interno della pagina.CookieParameter - preleva informazioni da un cookie.FormParameter - preleva informazioni da un campo form di una richiesta HTTP.Parameter - classe base di tutti i parametri.ProfileParameter - preleva informazioni da una delle proprietà del sistema dei profili.QueryStringParameter - preleva informazioni da una querystring.SessionParameter - preleva informazioni dalla sessione, tramite una chiave.Detto questo possiamo aggiungere il supporto dei parametri al nostro DataSource personalizzato.
Anzitutto dobbiamo aggiungere una proprietà che rappresenti la collezione di parametri propria del controllo. Lo facciamo dichiarando una proprietà di classe ParameterCollection.
Dobbiamo dichiarare che questa è la proprietà principale del nostro controllo e che quest'ultimo può supportare elementi figli. Qui entrano gioco le direttive DefaultProperty e ParseChildren
Infine, dobbiamo implementare l'override di tutti quei metodi per la gestione del ViewState, in modo tale da poter salvare i valori selezionati dai parametri e in seguito recuperarli.
Guida Windows Azure Code SnippetsLe migliori pratiche per far girare le applicazioni "in the cloud",... |
Guida ASP.NET MVC Best PracticesUn workflow dettagliato e ricco di suggerimenti pratici per... |
Guida ASP.NET Starter KitUn modo semplice per imparare ad utilizzare le tecnologie Microsoft... |
Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.
Iscriviti alla newsletter
|
|
Amministratore di Reti Windows Server 200820 Febbraio 2012 a Milano |
|
Nessun corso previsto |