asp: Querystringparameter und leere Abfrage-String-Parameter
-
30-09-2019 - |
Frage
I haveasp:GridView
Anzeigen Client-Anfragen mit asp:SqlDataSource
. Ich möchte angezeigten Informationen durch den Kunden begrenzen:
View.aspx
zu Anzeige hat alles, View.aspx?client=1
muss nur Anforderungen von Client-ID # 1 anzuzeigen.
Also ich bin mit <asp:QueryStringParameter Name="client" QueryStringField="client" />
für die Suche nach "EXEC getRequests @client"
.
Alles funktioniert einwandfrei, wenn einige Client angegeben wird. Aber nicht -. Wenn nicht
testete ich meine SP mit SSMS - es funktioniert in beiden Fällen - wenn Parameter angegeben wird und wenn dies nicht der Fall (NULL
bestand explizit)
Was habe ich zu tun?
Lösung
SqlDataSource wird nicht ausgelöst, wenn irgendetwas davon die Parameter sind null, es sei denn, Sie angeben, sonst:
<asp:SqlDataSource CancelSelectOnNullParameter="False" />
Es könnte auch notwendig sein, um einen Null-Standardwert für Ihren Abfragezeichenfolgeflag Parameter hinzuzufügen:
<asp:QueryStringParameter Name="client" QueryStringField="client" DefaultValue="" ConvertEmptyStringToNull="True" />
Andere Tipps
Sie müssen einen Standardwert auf den Parameter für jene Situationen definieren, zum Beispiel:
<asp:QueryStringParameter Name="client" QueryStringField="client" DefaultValue="0"/>
und dann in der SP Sie müssen überprüfen, ob der Kunde 0 ist, kehren alle Clients, da sonst die spezifischen.