How to get a gridview to show all table rows when no text is entered in a dependent textbox?

前端 未结 2 459
臣服心动
臣服心动 2021-01-16 11:40

The below works correctly and filters my gridview based on the text entered in my textbox.

When no text is entered into my textbox I get no results and cannot unders

相关标签:
2条回答
  • 2021-01-16 12:10

    Instead of coalesce you may have a if block which checks if the @search parameter is empty or not as shown below..

    if @search is not empty 
      SELECT  [table].[column]
      FROM    [table]
      WHERE   [table].[column] LIKE '%' + @Search + '%' OR COALESCE(@Search,'') = ''
    else
      SELECT  [table].[column]
      FROM    [table]
      WHERE   [table].[column]
    
    0 讨论(0)
  • 2021-01-16 12:24

    Look at CancelSelectOnNullParameter - by default, this prevents the select command from being called when a select parameter's value is null. After setting it to false, the select SP will then still get called even if the text box is empty, e.g.

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

    The SqlDataSource seems a bit misleading to me here, because TextBox.Text returns String.Empty when it's empty, not null, therefore I wouldn't expect to have to mess with CancelSelectOnNullParameter for a TextBox, but it seems we have to.

    0 讨论(0)
提交回复
热议问题