asp: QueryStringParameter y parámetro de cadena de consulta vacía
-
30-09-2019 - |
Pregunta
Me haveasp:GridView
presentan solicitudes de los clientes que utilizan asp:SqlDataSource
. Quiero limitar la información mostrada por el cliente:
View.aspx
tiene a la visualización de todo, View.aspx?client=1
tiene que mostrar sólo las peticiones de identificación de cliente # 1.
Así que estoy usando para <asp:QueryStringParameter Name="client" QueryStringField="client" />
"EXEC getRequests @client"
consulta.
Todo funciona correctamente cuando se especifica algún cliente. Pero no -. Si no
He probado mi SP utilizando SSMS - que funciona correctamente en ambos casos - cuando se especifica el parámetro y cuando no lo es (NULL
pasa explícitamente)
¿Qué he de hacer?
Solución
SqlDataSource no se disparará si alguno de sus parámetros son nulos, a no ser que se especifique lo contrario:
<asp:SqlDataSource CancelSelectOnNullParameter="False" />
También podría ser necesario añadir un valor predeterminado nulo a su parámetro de cadena de consulta:
<asp:QueryStringParameter Name="client" QueryStringField="client" DefaultValue="" ConvertEmptyStringToNull="True" />
Otros consejos
Es necesario definir un valor predeterminado para el parámetro para esas situaciones, por ejemplo:
<asp:QueryStringParameter Name="client" QueryStringField="client" DefaultValue="0"/>
y luego en el SP que tiene que verificar si el cliente es 0, devolver todos los clientes, de lo contrario el uno específico.