小编典典

在从属文本框中未输入任何文本时,如何获取gridview以显示所有表行?

sql

以下内容可以正常工作,并根据在我的文本框中输入的文本过滤我的gridview。

当没有文本输入到我的文本框中时,我没有任何结果,也无法理解原因。

我的问题

在文本框中未输入任何文本时,如何获取gridview以显示 所有 表行?

微软SQL

@Search nvarchar(50)

SELECT  [table].[column]
FROM    [table]
WHERE   [table].[column] LIKE '%' + @Search + '%' OR COALESCE(@Search,'') = ''

标记

<asp:TextBox ID="txtSearch" RunAt="Server" Text=""/>

<asp:SqlDataSource ID="sqlSearch" RunAt="Server" SelectCommand="spSearch" SelectCommandType="StoredProcedure">
  <SelectParameters>
    <asp:ControlParameter Type="String" Name="Search" ControlID="txtSearch" PropertyName="Text"/>
  </SelectParameters> 
</asp:SqlDataSource>

结果到GRIDVIEW

我已经尝试并测试了在这里找到的许多方法,但是当字符串为空时,所有方法都返回0结果。


阅读 205

收藏
2021-04-07

共1个答案

小编典典

查看CancelSelectOnNullParameter-默认情况下,这将
防止 在select参数的值为null时调用select命令。将其设置为后false,即使文本框为空,select SP仍将被调用,例如

<asp:SqlDataSource ID="sqlSearch" RunAt="Server" 
    CancelSelectOnNullParameter="false" ...>
</asp:SqlDataSource>

SqlDataSource在这里似乎对我有点误导,因为TextBox.Text为空时返回String.Empty,而不是null,因此,我不希望为TextBox搞砸CancelSelectOnNullParameter,但这似乎是必须的。

2021-04-07