144 messaggi dal 26 febbraio 2007
Ciao,


Ho creato un SqlDataSource a cui ho collegato un GridView, ed ho specificato un SelectParameters per filtrare da query string i risultati, volevo sapere se era possibile eliminare il filtro, ad esempio se nella mia pagina non è presente il parametro in querystring ho un errore, io invece volevo fare in modo che se non fosse presente il filtro non fosse eseguito e quindi mi dovrebbe mostrare tutto..

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
SelectCommand="SELECT *
FROM Table
WHERE SubCategoryID=@SubCategoryID"
ConnectionString="<%$ ConnectionStrings:NameDB %>"
DataSourceMode="DataSet">
<SelectParameters>
<asp:QueryStringParameter Name="SubCategoryID" QueryStringField="SubCat" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
al Page_Load, componi dinamicamente il SelectCommand e aggiungi il SelectParameter, a seconda che la chiave SubCat sia presente o meno in querystring.

Nel tuo post hai menzionato un errore, che cosa dice? E' strano perché se anche uno solo dei parametri fosse null, il SqlDataSource non effettuerebbe la selezione.

In alternativa, se volessi risolvere il problema in maniera dichiarativa, potresti ingegnarti così:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
SelectCommand="SELECT *
FROM Table
WHERE SubCategoryID=IsNull(@SubCategoryID, SubCategoryID)"
ConnectionString="<%$ ConnectionStrings:NameDB %>"
DataSourceMode="DataSet" CancelSelectOnNullParameter="false">
<SelectParameters>
<asp:QueryStringParameter Name="SubCategoryID" QueryStringField="SubCat" Type="String" ConvertEmptyStringToNull="true" />
</SelectParameters>
</asp:SqlDataSource>

Qui puoi notare alcune cose:
  • L'attributo CancelSelectOnNullParameter="false" sul SqlDataSource gli farà eseguire il SelectCommand anche in mancanza della chiave SubCat.
  • Il SelectCommand è stato cambiato in modo da supportare anche eventuali valori null. In quel caso, verranno restituiti tutti i record (la funzione IsNull restituisce il secondo parametro se il primo è null)
  • Sul QueryStringParameter ho messo ConvertEmptyStringToNull="true", così da Gestire anche il caso in cui SubCat dovesse essere fornita vuota.


ciao
Modificato da BrightSoul il 28 giugno 2012 22.23 -

Enjoy learning and just keep making
32 messaggi dal 19 agosto 2008
Ottimo BrightSoul è la seconda volta che mi sei di aiuto ....era una cosa che cercavo e l'ho trovata qui sul forum ;)
11.886 messaggi dal 09 febbraio 2002
Contributi
 benone! Felice di esserti stato d'aiuto :)

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.