asp: QueryStringParameter e parametro di stringa di query vuota
-
30-09-2019 - |
Domanda
I haveasp:GridView
visualizzare le richieste dei client utilizzando asp:SqlDataSource
. Voglio limitare le informazioni visualizzate dal cliente:
View.aspx
ha da mostrare tutto, View.aspx?client=1
deve visualizzare solo le richieste da client ID # 1.
Così sto usando <asp:QueryStringParameter Name="client" QueryStringField="client" />
per la query "EXEC getRequests @client"
.
Tutto funziona correttamente quando viene specificata qualche cliente. Ma non -. Se non
Ho provato il mio SP utilizzando SSMS - funziona correttamente in entrambi i casi - quando è specificato il parametro e quando non lo è (NULL
passato esplicitamente)
Che cosa ho fare?
Soluzione
SqlDataSource non sarà il fuoco se qualcuno dei suoi parametri sono nulli, se non diversamente specificato:
<asp:SqlDataSource CancelSelectOnNullParameter="False" />
Potrebbe anche essere necessario aggiungere un valore predefinito null per il vostro parametro querystring:
<asp:QueryStringParameter Name="client" QueryStringField="client" DefaultValue="" ConvertEmptyStringToNull="True" />
Altri suggerimenti
È necessario definire un valore predefinito per il parametro per quelle situazioni, per esempio:
<asp:QueryStringParameter Name="client" QueryStringField="client" DefaultValue="0"/>
e poi nella SP si deve verificare se il cliente è 0, restituire tutti i clienti, altrimenti quello specifico.