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:
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.
- Speciale per il lancio di Visual Studio 2008, SQL Server 2008 e Windows Server 2008 dal 25/02 al 07/03
- Speciale Binding di Windows Presentation Foundation
- #935 - Sfruttare l'evento LoadComplete della pagina
- StringValidatorAttribute ConfigurationProperty e DefaultValue
- #916 - Utilizzare il ControlState di ASP.NET 2.0
- #911 - Ricercare classi all'interno di un assembly utilizzando la Reflection
- #910 - Incrementare le performance di ASP.NET rimuondo gli HttpModule non necessari
- #927 - Un HttpModule per passare automaticamente da HTTP a HTTPS
- DropDowList tu mi tradisci
- #945 - Verificare l'accesso ai file mediante l'UrlAuthorizationModule di ASP.NET
- #929 - Impersonation di utente per l'esecuzione di codice in una pagina ASP.NET
- Tutto per portarsi il .NET Framework 3.5 sotto l'ombrellone
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!