QueryExtender控件之RangeExpression

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

RangeExpression 类与SearchExpression 类相似,不同之处在于RangeExpression 类使用了一对值来定义范围,以确定列中的值是否在指定的最小值和最大值之间。例如,可以在表的“单价”列中搜索介于 10元和 100元之间的值。

在使用RangeExpression时,你必须使用 DataField 属性指定要搜索的列;使用MinType属性指定是否在搜索结果中包括或排除最小值;使用MaxType属性指定是否包括或排除最大值。其中,MinType属性与MaxType的值包括 InclusiveExclusive None。当 MinType 属性或 MaxType 属性设置为 Inclusive 时,范围的最大值和最小值包括在搜索结果中,这相当于执行一个 >= <= 运算;Exclusive 字段等效于 > < 运算;None 将不会对范围施加任何限制。最大值和最小值可以通过在页面中使用 ASP.NET 控件来指定,然后将该值作为 ControlParameter 控件中的参数传递到 QueryExtender 控件。

下面的示例程序演示了如何在ASP.NET4数据库的Employee数据表的EmployeeID列中,搜索员工编号位于 FromTextBox ToTextBox 文本框指定的范围内的员工信息。其中,筛选器包括最小值,但不包括结果中的最大值。最后,从LinqDataSource 控件返回的结果显示在 GridView 控件中。如代码清单10-4所示:

代码清单10-4RangeExpressionTest.aspx 

  
  
  
  
  1. <form id="form1" runat="server"> 
  2. 搜索员工编号:  
  3. <asp:TextBox ID="FromTextBox" runat="server"></asp:TextBox> 
  4. 到  
  5. <asp:TextBox ID="ToTextBox" runat="server"></asp:TextBox> 
  6. <asp:Button ID="Button1" runat="server" Text="搜索" /> 
  7. <br /> 
  8. <br /> 
  9. <asp:LinqDataSource ID="LinqDataSource1"   
  10. TableName="Employees" runat="server"   
  11. ContextTypeName="_10_2.EmployeesDataContext" 
  12.   EntityTypeName="" Select="new (employeeid, employeename,  
  13.  department, address, email, workdate)"> 
  14. </asp:LinqDataSource> 
  15. <asp:QueryExtender ID="QueryExtender1" runat="server" 
  16.  TargetControlID="LinqDataSource1"> 
  17.     <asp:RangeExpression DataField="employeeid" 
  18.  MinType="Inclusive" MaxType="Exclusive"> 
  19.         <asp:ControlParameter ControlID="FromTextBox" /> 
  20.         <asp:ControlParameter ControlID="ToTextBox" /> 
  21.     </asp:RangeExpression> 
  22. </asp:QueryExtender> 
  23. <asp:GridView ID="GridView1" runat="server" Width="100%" 
  24.  DataSourceID="LinqDataSource1" 
  25.     AllowPaging="True" AutoGenerateColumns="False" 
  26.  DataKeyNames="employeeid"> 
  27.     <Columns> 
  28.         <asp:BoundField DataField="employeeid" HeaderText="编号" 
  29.  ReadOnly="True" SortExpression="employeeid" /> 
  30.         <asp:BoundField DataField="employeename" HeaderText="姓名" 
  31.  SortExpression="employeename" /> 
  32.         <asp:BoundField DataField="department" HeaderText="部门" 
  33.  SortExpression="department" /> 
  34.         <asp:BoundField DataField="address" HeaderText="住址"   
  35. SortExpression="address" /> 
  36.         <asp:BoundField DataField="email" HeaderText="邮箱" 
  37.  SortExpression="email" /> 
  38.         <asp:BoundField DataField="workdate" HeaderText="工作时间" 
  39.  SortExpression="workdate" /> 
  40.     </Columns> 
  41. </asp:GridView> 
  42. </form> 
示例运行结果图10-23 所示:                                                                   

 

10-23:示例运行结果
 本文部分摘自《ASP.NET4权威指南》

你可能感兴趣的:(职场,休闲,asp.net4,QueryExtender)