06-编程设置ObjectDataSource的参数值.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
06-编程设置ObjectDataSource的参数值要点

导言正如我们在上一节的教程中所看到的,有很多可供选择的方式把参数的值传递到OjbectDataSource的方法里。假如参数值是采用硬编码方式,来源于页面上的一个Web控件,又或者其他可被数据源Parameter对象读取的源,那么这个值可以绑定到输入参数而不需要写一行的代码。?然而有些时候,参数值来自某些在数据源的内置Parameter对象里还没有计算出来的源。假如我们的站点支持我们的考虑那么我们也许希望参数基于当前登录用户。又或者我们在参数传送到ObjectDataSource的隐含对象的方法前做一些客户化定制。?无论什么时候调用ObjectDataSource的Seelect方法,它都会首先触发它的Selecting事件,然后才调用ObjectDataSource的隐含对象的方法,完成后则激发ObjectDataSource ObjectDataSource的Selected事件(图一说明这些事件的顺序)。可以在Selecting事件的事件委托中对参数的值进行设置或更改。图 1: ObjectDataSource的Selected 和 Selecting 事件分别在调用它的隐含对象的方法之前和之后触发这一节里我们将看看添加一个接受一个输入参数方法到DAL和BLL层,参数名为Month,int类型,方法返回一个EmployeesDataTable对象,里边包含的是雇佣周年纪念都指定月份的雇员。我们的例子将编码设置为基于当前月份,显示一个“本月雇用周年纪念员工”列表。让我们开始吧!第一步: 添加一个方法到 EmployeesTableAdapter在我们的第一个例子里,我们需要添加一个方法来获取那些雇用日期(HireDate)在某个指定月份的员工。在我们的程序架构下为了提供这个功能,我们首先需要在通过特定SQL语句映射出来的EmployeesTableAdapter中创建一个方法。为了实现这一点,首先打开Northwind类型化数据集,在EmployeesTableAdapter标签上右键选择“添加查询”。图 2: 在 EmployeesTableAdapter里添加一个查询?选择返回一个或多个行和列的SQL语句。当到达指定SELECT语句窗口时,EmployeesTableAdapter已经装载了默认的SELECT语句。简单地,添加一个WHERE子句:WHERE DATEPART(m, HireDate) = @Month 。其中DATEPART是T-SQL里的一个函数,用作返回日期类型的一部分;在这里,我们使用DATEPART函数返回雇用日期(HireDate)列的月份部分。图 3: 仅返回 HireDate 列的值小于等于参数 @HiredBeforeDate的行?最后,分别把默认的方法名FillBy和GetDataBy更改为FillByHiredDateMonth和GetEmployeesByHiredDateMonth 。图 4: 选择比FillBy和GetDataBy更恰当的方法名称?点击“完成”结束向导并返回到数据集的设计界面。这时候EmployeesTableAdapter会包含一套新的方法来获取指定月份雇用的员工。图 5: 新的方法出现在数据集的设计界面?第二步: 在业务逻辑层添加方法 GetEmployeesByHiredDateMonth(month)?因为我们的程序架构使用了单独的一层来处理业务逻辑和数据逻辑,我们需要在BLL里增加一个方法,该方法调用DAL的方法获取指定月份里雇用的员工。打开文件EmployeesBLL.cs并添加下面这个方法:?[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]public Northwind.EmployeesDataTable GetEmployeesByHiredDateMonth(int month){??? return Adapter.GetEmployeesByHiredDateMonth(month);}?和此类里的其他方法一样,GetEmployeesByHiredDateMonth(month)仅仅是简单地调用DAL并返回结果。??第三步: 显示雇用周年纪念日在本月份的员工最后一部我们举例说明如何显示雇用周年纪念在本月份的员工。首先,添加一个GridView控件到页面ProgrammaticParams.aspx,该页面在文件夹BasicReporting里。添加一个新的ObjectDataSource控件作为它的数据源。配置ObjectDataSource使用类EmployeesBLL

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档