C# asp.net SqlDataSource筛选器表达式空字符串逻辑
下面是我要执行的逻辑 当文本框为空时,我希望数据网格不显示任何记录。C# asp.net SqlDataSource筛选器表达式空字符串逻辑,c#,asp.net,sqldatasource,C#,Asp.net,Sqldatasource,下面是我要执行的逻辑 当文本框为空时,我希望数据网格不显示任何记录。 当文本框不为空时,datagrid将过滤数据 现在,当文本框为空时,它会显示所有记录 我怎样才能解决这个问题?提前谢谢 以下是代码块: <asp:SqlDataSource ID="dsGridview" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" SelectCommand="SELECT
当文本框不为空时,datagrid将过滤数据 现在,当文本框为空时,它会显示所有记录 我怎样才能解决这个问题?提前谢谢 以下是代码块:
<asp:SqlDataSource ID="dsGridview" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>"
SelectCommand="SELECT UserName, gender, age FROM users"
FilterExpression="UserName like '%{0}%'">
<FilterParameters>
<asp:ControlParameter Name="UserName" ControlID="txtSearch" PropertyName="Text" />
</FilterParameters>
</asp:SqlDataSource>
我注意到FilterExpression的行为有点不同(它用括号括起参数名或值,实际上它执行SQL转义),因此要检查@UserName是否为null,它将与SelectParameters一起工作。
我注意到FilterExpression的行为有点不同(它用括号括起参数名或值,实际上是SQL转义),所以要检查@UserName是否为null,它可以与SelectParameters一起工作。只需在
txtSearch
上使用RequiredFieldValidator
,或者在服务器端使用下面的检查(如果合适)。如果不希望返回任何数据,则无需运行查询:
if(String.IsNullOrEmpty(txtSearch.Text))
{
//don't databind and use validation to tell the user to enter data
}
只需在
txtSearch
上使用RequiredFieldValidator
,或在服务器端使用下面的检查即可。如果不希望返回任何数据,则无需运行查询:
if(String.IsNullOrEmpty(txtSearch.Text))
{
//don't databind and use validation to tell the user to enter data
}
我在aspx页面上使用ajax,因此它不会转到后端代码来检查文本框是否为空。因此,当用户在文本框中键入内容时,它将刷新GridView而不重新加载页面。我在aspx页面上使用ajax,因此它不会转到后端代码来检查文本框是否为空。因此,当用户在文本框中键入内容时,它会刷新GridView而不重新加载页面。它就像一个符咒!谢谢你,阿德里安。为什么第一个不适用于filterExpression?有什么好文章解释这个吗?@JohnnySun,我不知道有什么文章,在测试它的时候,我发现它做了某种替换。因此,它将“@UserName is not null”转换为“[文本框中输入的值]not null”。它就像一个符咒!谢谢你,阿德里安。为什么第一个不适用于filterExpression?有什么好文章解释这个吗?@JohnnySun,我不知道有什么文章,在测试它的时候,我发现它做了某种替换。因此,它将“@UserName不为null”转换为“[文本框中输入的值]不为null”。。