我有asp:GridView 使用客户请求使用 asp:SqlDataSource. 。我想限制客户端显示的信息:

View.aspx 必须显示一切, View.aspx?client=1 必须仅显示客户ID#1的请求。

所以我正在使用 <asp:QueryStringParameter Name="client" QueryStringField="client" /> 查询 "EXEC getRequests @client".

指定某些客户端时,一切正常。但是不要 - 如果没有。

我使用SSMS测试了SP-在两种情况下,它都可以正常工作 - 指定参数时,何时未使用(否)NULL 明确通过)。

我做什么?

有帮助吗?

解决方案

如果任何参数为null,则SQLDATASOURCE不会发射,除非您另行指定:

<asp:SqlDataSource CancelSelectOnNullParameter="False" />

也可能有必要在您的querystring参数中添加null默认值:

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

其他提示

您需要将默认值定义为这些情况的参数,例如:

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

然后在SP中,您需要验证客户端是否为0,返回所有客户端,否则特定的客户端。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top