ASP.NET 2.0数据教程:SelectMethod属性的使用
创始人
2024-04-20 19:21:18
0

最后一部我们举例说明如何显示雇用周年纪念在本月份的员工。首先,添加一个GridView控件到页面ProgrammaticParams.aspx,该页面在文件夹BasicReporting里。添加一个新的ObjectDataSource控件作为它的数据源。配置ObjectDataSource使用类EmployeesBLL并指定SelectMethod属性为GetEmployeesByHiredDateMonth(month)。

使用EmployeesBLL 类 

图 6: 使用EmployeesBLL 类

 选择GetEmployeesByHiredDateMonth(month)方法 

SelectMethod: 选择GetEmployeesByHiredDateMonth(month)方法

最后一屏要求我们给month参数提供参数源。既然我们将编码设置这个值,就让参数源维持它的默认选项None,点击“完成”。

让参数源设置为None 

图 8: 让参数源设置为None

这将在ObjectDataSource的SelectParameters集合里创建一个未指定参数值的Parameter对象。

  1. < asp:ObjectDataSource ID="ObjectDataSource1" runat="server" OldValuesParameterFormatString="original_{0}" 
  2.  
  3.     SelectMethod="GetEmployeesByHiredDateMonth" TypeName="EmployeesBLL">  
  4.  
  5.     < SelectParameters>  
  6.  
  7.         < asp:Parameter Name="month" Type="Int32" />  
  8.  
  9.     < /SelectParameters>  
  10.  
  11. < /asp:ObjectDataSource>  
  12.  

要编码设置这个参数值,我们需要给ObjectDataSource的Selecting事件添加一个事件委托。为了实现这一点,到设计视图里在ObjectDataSource上双击。另一种方式是选中ObjectDataSource在属性窗口里点击黄色闪电小图标,然后,直接在Selecting这一栏里双击或者输入一个你要使用的事件委托的名称。

点击属性窗口里的闪电图标列出Web控件的所有事件 

图 9:点击属性窗口里的闪电图标列出Web控件的所有事件

两种途径都可以在页面的代码隐藏类里增加一个对ObjectDataSource的Selecting事件的事件委托。在这个事件委托里,我们可以通过使用e.InputParameters[parameterName]读取参数的值,其中parameterName的值是< asp:Parameter>标签里的属性Name的值(InputParameters也可以按照索引访问,用e.InputParameters[index])。为了把month参数设置为当前月份,需要在Selecting事件委托里加入如下代码:

  1. protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)  
  2.  
  3. {  
  4.  
  5.     e.InputParameters["month"] = DateTime.Now.Month;  
  6.  
  7. }  
  8.  

当通过浏览器访问该页面,我们可以看到只有一个员工是在当前月份(三月)雇用的:Laura Callahan,他从1994年3月开始雇用。

雇用周年纪念日在本月份的员工被显示出来了 

图 10: 雇用周年纪念日在本月份的员工被显示出来了

这样就通过SelectMethod属性实现了显示指定范围内的对象。

【编辑推荐】

  1. ASP.NET 2.0数据教程:插入,更新和删除数据
  2. ASP.NET 2.0数据教程:给数据访问层添加参数化的方法
  3. ASP.NET 2.0数据教程:创建数据访问层
  4. ASP.NET 2.0数据教程:创建一个Web项目,配置数据库连接
  5. ASP.NET 2.0数据教程:给DataRow添加字段级验证

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...