我对三个字段的文本框应用了查询扩展程序。它有效,但区分大小写。例如,如果用户名字段的名称为"AWAIS",而我搜索"AWAIS",则它不会搜索,反之亦然。如何去除敏感度?
我的代码是
<td>
<asp:LinqDataSource ID="LinqDataSource1" runat="server" ContextTypeName="BookStore.Bussines.Entities.BookStoreEntities"
OnSelecting="LinqDataSource1_Selecting">
</asp:LinqDataSource>
<asp:QueryExtender ID="qeSearch" runat="server" TargetControlID="LinqDataSource1">
<asp:SearchExpression DataFields="DISTRIBUTOR_NAME,DISTRIBUTOR_CODE,DISTRIBUTOR_URL" SearchType="Contains">
<asp:ControlParameter ControlID="txtSearchDistributor" />
</asp:SearchExpression>
</asp:QueryExtender>
</td>
根据文档:
搜索表达式中的大小写敏感性取决于您在QueryExtender控件中指定的LINQ提供程序。
如果在QueryExtender控件中使用的LINQ提供程序支持区分大小写,则可以使用ComparisonType属性启用或忽略区分大小写。
另一种可能性-数据库排序
也许您的数据库设置为区分大小写。如果您使用的是SQL Server,则会有一些链接。
SQL Server排序规则描述
排序规则的描述
如果您查看MSDN上关于该控件的文档,您会看到如何处理区分大小写:
搜索表达式中的大小写敏感性取决于您在QueryExtender控件中指定的LINQ提供程序。
试试这个:
将SearchExpression.ComparisonType
设置为StringComparison.OrdinalIgnoreCase
<asp:SearchExpression DataFields="DISTRIBUTOR_NAME,DISTRIBUTOR_CODE,DISTRIBUTOR_URL" SearchType="Contains" ComparisonType=StringComparison.OrdinalIgnoreCase>
<asp:ControlParameter ControlID="txtSearchDistributor" />
</asp:SearchExpression>
https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.expressions.searchexpression.comparisontype%28v=vs.110%29.aspx
https://msdn.microsoft.com/en-us/library/system.stringcomparison%28v=vs.110%29.aspx