Nello script #877 abbiamo visto come impostare a runtime il valore dei parametri delle query eseguite da un SqlDataSource.
Analogamente, è possibile impostare la query. Prendiamo ad esempio il seguente SqlDataSource:
<asp:SqlDataSource ID="GameSqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionStringDataBase %>" SelectCommand="SELECT [ID], [NomeGioco], [IDGenere] FROM [Giochi] WHERE ([IDGenere] = @IDGenere)" OnSelecting="GameSqlDataSource_Selecting" > <SelectParameters> <asp:ControlParameter ControlID="DropDownList1" Name="IDGenere" type="Int32" /> </SelectParameters> </asp:SqlDataSource>
Una semplice query estrae il nome del gioco in base ad una delle categorie disponibili, selezionata meditante l'uso di una DropDownList, ma in alcuni casi può essere necessario selezionare tutti i giochi indipendentemente dalla categoria.
Creiamo un event handler per l'evento Selecting, in cui la funzione riceve un oggetto del tipo SqlDataSourceSelectingEventArgs, così che mediante la proprietà Command, di tipo DbCommand, imposteremo la query ed elimineremo i parametri non più necessari.
protected void GameSqlDataSource_Selecting(object sender, SqlDataSourceSelectingEventArgs e) { if (DropDownList1.SelectedValue == "0") { e.Command.CommandText = "SELECT [ID], [NomeGioco], [IDGenere] FROM [Giochi]"; e.Command.Parameters.Clear(); } }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Short-circuiting della Pipeline in ASP.NET Core
Effettuare il binding di date in Blazor
Implementare il throttling in ASP.NET Core
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Load test di ASP.NET Core con k6
I più letti di oggi
- C# 4
- Spaziatura tra i caratteri in Silverlight 5
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Segui in tempo reale il TechEd 2004
- da oggi è possibile fare login velocemente con LinkedIn e Google. a questi si aggiunge il supporto già attivo per Facebook, Twitter, Microsoft Account, Windows Hello e OpenID, per darvi sempre più possibilità di accedere semplicemente alla nostra community! #aspitalia
- Migrare una service connection a workload identity federation in Azure DevOps
- Evitare postback multipli in un UpdatePanel