以下内容可以正常工作,并根据在我的文本框中输入的文本过滤我的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结果。
查看CancelSelectOnNullParameter-默认情况下,这将 防止 在select参数的值为null时调用select命令。将其设置为后false,即使文本框为空,select SP仍将被调用,例如
false
<asp:SqlDataSource ID="sqlSearch" RunAt="Server" CancelSelectOnNullParameter="false" ...> </asp:SqlDataSource>
SqlDataSource在这里似乎对我有点误导,因为TextBox.Text为空时返回String.Empty,而不是null,因此,我不希望为TextBox搞砸CancelSelectOnNullParameter,但这似乎是必须的。