惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threatpost
The Hacker News
The Hacker News
AWS News Blog
AWS News Blog
Spread Privacy
Spread Privacy
T
Tenable Blog
C
CERT Recently Published Vulnerability Notes
Cisco Talos Blog
Cisco Talos Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Securelist
P
Privacy & Cybersecurity Law Blog
Know Your Adversary
Know Your Adversary
T
The Exploit Database - CXSecurity.com
Latest news
Latest news
D
Darknet – Hacking Tools, Hacker News & Cyber Security
I
Intezer
F
Fortinet All Blogs
Engineering at Meta
Engineering at Meta
Simon Willison's Weblog
Simon Willison's Weblog
The Register - Security
The Register - Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
L
Lohrmann on Cybersecurity
C
Cyber Attacks, Cyber Crime and Cyber Security
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
H
Help Net Security
T
Threat Research - Cisco Blogs
D
DataBreaches.Net
S
Schneier on Security
Cyberwarzone
Cyberwarzone
Google DeepMind News
Google DeepMind News
P
Privacy International News Feed
S
Secure Thoughts
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recorded Future
Recorded Future
C
Cybersecurity and Infrastructure Security Agency CISA
MyScale Blog
MyScale Blog
M
MIT News - Artificial intelligence
Stack Overflow Blog
Stack Overflow Blog
IT之家
IT之家
人人都是产品经理
人人都是产品经理
NISL@THU
NISL@THU
博客园 - Franky
T
Tor Project blog
G
GRAHAM CLULEY
博客园 - 【当耐特】
Jina AI
Jina AI
Security Archives - TechRepublic
Security Archives - TechRepublic
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
A
About on SuperTechFans
Hacker News - Newest:
Hacker News - Newest: "LLM"

博客园 - 马伟

通过xrdp实现远程桌面连接Windows Azure linux虚拟机 使用VNC远程连接Windows Azure Linux虚拟机 设置Windows Azure Linux虚拟机中的root账户 使用Windows Azure PowerShell远程管理Windows Azure虚拟机 将SQL Azure数据库备份到本地SQL Server 2012 asp.net MVC3 “System.Web.Mvc.ModelClientValidationRule”问题 Session的生命周期 在ASP.NET中以编程方式设置母版页 ASP.NET自定义输出缓存提供程序 ASP.NET缓存依赖--自定义缓存依赖 ASP.NET缓存依赖--SQL Server 2005与SQL Server 2008缓存依赖 QueryExtender控件之CustomExpression QueryExtender控件之OrderByExpression QueryExtender控件之PropertyExpression QueryExtender控件之RangeExpression <<易学C#>>全书目录 用C#编程合并多个WORD文档 fckeditor编辑器上传文件出现invalid Request问题解决 荣获2009年“微软最有影响力开发者”
QueryExtender控件之SearchExpession
马伟 · 2010-11-09 · via 博客园 - 马伟

2010-11-09 20:12  马伟  阅读(434)  评论()    收藏  举报

 本文部分摘自《ASP.NET4权威指南》

SearchExpression 类将一个或多个字段中的指定字符串与你提供的值作比较,它执行“开头为”、“包含”或“结尾为”搜索。例如,你可以向文本框控件中输入文本,并使用该表达式搜索从数据源控件返回的列中的该文本。

在使用SearchExpression时,你必须为它的SearchType属性和 DataFields 属性指定值,以指明你要执行的搜索类型以及要搜索的数据字段。其中,SearchType 属性使用的SearchType枚举包含要在SearchExpression类的实例中使用的搜索类型,其枚举值为:

l         StartsWith:指示的字段中的任意位置开始的搜索。

l         Contains:指示从一个字段开头开始的搜索。

l         EndsWith:指示在字段结尾的搜索。

因为QueryExtender控件依赖于 LINQ。所以要在QueryExtender 控件中使用SearchExpression进行数据搜索,你还需要创建一个.dbml文件,创建的示例Employees.dbml文件如图10-21所示:

10-21:示例运行结果

创建好的Employees.dbml文件之后,你就可以通过在页面中使用ASP.NET 控件来提供要搜索的值。为此,你还需要将 SearchExpression 对象中 ControlParameter 类的 ControlID 属性设置为该 ASP.NET 控件的 ID

下面的示例程序演示了如何在ASP.NET4数据库的Employee数据表的 EmployeeName列中,搜索以 SearchTextBox 控件中指定的字符串开头的员工信息。从LinqDataSource 控件返回的结果显示在 GridView 控件中。如代码清单10-3所示:

代码清单10-3SearchExpressionTest.aspx

代码

<form id="form1" runat="server">
搜索员工姓名:
<asp:TextBox ID="SearchTextBox" runat="server" />
<asp:Button ID="Button1" runat="server" Text="搜索" />
<br /><br />
<asp:LinqDataSource ID="LinqDataSource1" 
TableName
="Employees" runat="server"
  ContextTypeName
="_10_2.EmployeesDataContext"
 EntityTypeName
="" Select="new (employeeid, employeename,
 department, address, email, workdate)">
</asp:LinqDataSource>
<asp:QueryExtender ID="QueryExtender1" runat="server"
 TargetControlID
="LinqDataSource1">
    
<asp:SearchExpression SearchType="StartsWith"
 DataFields
="EmployeeName">
        
<asp:ControlParameter ControlID="SearchTextBox" />
    
</asp:SearchExpression>
</asp:QueryExtender>
<asp:GridView ID="GridView1" runat="server" Width="100%"
 DataSourceID
="LinqDataSource1" AllowPaging="True"
 AutoGenerateColumns
="False" DataKeyNames="employeeid">
    
<Columns>
        
<asp:BoundField DataField="employeeid" HeaderText="编号"
 ReadOnly
="True" SortExpression="employeeid" />
        
<asp:BoundField DataField="employeename" HeaderText="姓名"
 SortExpression
="employeename" />
        
<asp:BoundField DataField="department" HeaderText="部门"
 SortExpression
="department" />
        
<asp:BoundField DataField="address" HeaderText="住址" 
SortExpression
="address" />
        
<asp:BoundField DataField="email" HeaderText="邮箱" 
SortExpression
="email" />
        
<asp:BoundField DataField="workdate" HeaderText="工作时间"
 SortExpression
="workdate" />
    
</Columns>
</asp:GridView>
</form>

示例运行结果图10-22所示:

10-22:示例运行结果

还需要说明的是,如果你在 QueryExtender 控件中使用的 LINQ 提供程序支持区分大小写,你还可以使用SearchExpressionComparisonType 属性启用或警用区分大小写。

本文部分摘自《ASP.NET4权威指南》