9

asp:GridView使用してクライアントリクエストを表示していますasp:SqlDataSource。クライアントごとに表示される情報を制限したい:

View.aspxすべてを表示するView.aspx?client=1必要があり、クライアントID#1からの要求のみを表示する必要があります。

だから私は<asp:QueryStringParameter Name="client" QueryStringField="client" />クエリに使用しています"EXEC getRequests @client"

一部のクライアントが指定されている場合、すべてが正しく機能します。しかし、そうしないでください-そうでない場合。

SSMSを使用してSPをテストしました(どちらの場合も正しく機能します)。パラメーターが指定されている場合と指定されていない場合(NULL明示的に渡された場合)。

私は何をしましたか?

4

2 に答える 2

19

特に指定しない限り、パラメーターのいずれかが null の場合、SqlDataSource は起動しません。

<asp:SqlDataSource CancelSelectOnNullParameter="False" />

クエリ文字列パラメーターに null の既定値を追加する必要がある場合もあります。

<asp:QueryStringParameter Name="client" QueryStringField="client" DefaultValue="" ConvertEmptyStringToNull="True" />
于 2010-04-21T23:10:08.890 に答える
3

これらの状況では、パラメータにデフォルト値を定義する必要があります。次に例を示します。

<asp:QueryStringParameter Name="client" QueryStringField="client" DefaultValue="0"/>

次に、SPで、クライアントが0であるかどうかを確認し、すべてのクライアントを返す必要があります。そうでない場合は、特定のクライアントを返します。

于 2010-04-21T22:45:25.947 に答える