Impostare il valore dei parametri utilizzati dal controllo SqlDataSource runtime.
Il WebControl SqlDataSource esegue le classiche operazioni CRUD mediante query sul database, che possono essere parametrizzate e recuperare il proprio valore da controlli, Querystring, Session e altro.
In alcuni casi il valore del parametro potrebbe ad esempio dipendere dal valore di più di un controllo ed in casi come questi è necessario impostare il paramentro in maniera programmatica.
Creiamo un semplice SqlDataSource che seleziona alcune informazioni dalla tabella Customer.
<asp:SqlDataSource ID="mySqlDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [ID],[Name], [Surname], [Birthday] FROM [Customer] WHERE ([ID] = @ID)"
OnSelecting="MySqlDataSource_Selecting">
<SelectParameters>
<asp:Parameter DefaultValue="" Name="ID" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
Il trucco consiste nell'aggiungere un handler per l'evento Selecting, che si verifica prima che il DataSource control effettui la query di selezione:
[code lang="c#"]protected void MySqlDataSource_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
int _id = 0;
//provo a recuperare il parametro tramite querystring
int.TryParse(Request.QueryString["id"], out _id);
//altrimenti provo con l'input inserito dall'utente
if (_id == 0)
{
int.TryParse(myTextBox.Text, out _id);
}
//imposto il valore del parametro.
e.Command.Parameters["@ID"].Value = _id;
}
Nel metodo MySqlDataSource_Selecting se il tentativo di recuperare l'id del custumer tramite QueryString dovesse fallire, viene eseguito un altro tentativo utilizzando l'input inserito dall'utente.
Analogamente è possibile impostare il valore dei parametri passati per le operazioni di modifica, aggiornamento e eliminazione, intercettando i relativi eventi.
- #946 - Attributi per il supprto a design time di custom control con ASP.NET
- #942 - Creare feed RSS e Atom con il .NET Framework 3.5
- Speciale per il lancio di Visual Studio 2008, SQL Server 2008 e Windows Server 2008 dal 25/02 al 07/03
- #932 - Il controllo ListView di ASP.NET 3.5
- Tutte le novità su ASP.NET 3.5 il 15 gennaio a L'Aquila
- #945 - Verificare l'accesso ai file mediante l'UrlAuthorizationModule di ASP.NET
- Il modo più facile per far andare ASP.NET 3.5 sul vostro server
- #957 - Le novità della WebForm in ASP.NET 3.5 SP1
- #963 - Intercettare gli eventi LoadComplete e PreRenderComplete da uno user control
- #956 - Aggiungere controlli ad una pagina ASP.NET con supporto per gli eventi usando XSLT
- Introduzione ad ASP.NET 3.5: novità e caratteristiche
- I bug di ASP.NET AJAX 1.0 risolti con ASP.NET AJAX 3.5
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.






Stampa
Snippet
Download 


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