您的位置:知识库 » .NET技术

ASP.NET 2.0数据教程之六:编程设置ObjectDataSource的参数值

作者: №.零零伍  来源: 博客园  发布时间: 2008-10-08 10:25  阅读: 4533 次  推荐: 0   原文链接   [收藏]  

系列文章导航:

ASP.NET 2.0数据教程之一:创建一个数据访问层

ASP.NET 2.0数据教程之二:创建一个业务逻辑层

ASP.NET 2.0数据教程之三:母板页和站点导航

ASP.NET 2.0数据教程之四:使用ObjectDataSource展现数据

ASP.NET 2.0数据教程之五:声明参数

ASP.NET 2.0数据教程之六:编程设置ObjectDataSource的参数值

ASP.NET 2.0数据教程之七:使用DropDownList过滤的主/从报表

ASP.NET 2.0数据教程之八:使用两个DropDownList过滤的主/从报表

ASP.NET 2.0数据教程之九:跨页面的主/从报表

ASP.NET 2.0数据教程之十:使用 GridView 和DetailView实现的主/从报表

ASP.NET 2.0数据教程之十一:基于数据的自定义格式化

ASP.NET 2.0数据教程之十二:在GridView控件中使用TemplateField


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

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" OldValuesParameterFormatString="original_{0}"

    SelectMethod="GetEmployeesByHiredDateMonth" TypeName="EmployeesBLL">

    <SelectParameters>

        <asp:Parameter Name="month" Type="Int32" />

    </SelectParameters>

</asp:ObjectDataSource>

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


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

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

protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)

{

    e.InputParameters["month"] = DateTime.Now.Month;

}

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


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

总结

虽然可以用特定的方式声明ObjectDataSource的参数值而不需要写代码,编程设置参数值同样很容易。我们需要做的仅仅是给ObjectDataSourceSelecting事件增加一个事件委托,它在调用隐含对象的方式前触发,并且通过InputParameters集合手工设置一个或多个参数值。

本节结束基本这一章。下一节我们开始主从数据一章,这一章里我们将着眼于允许访问者筛选数据和主从数据处理的技巧。

祝编程快乐!

作者简介

Scott Mitchell,著有六本ASP/ASP.NET方面的书,是4GuysFromRolla.com的创始人,自1998年以来一直应用微软Web技术。Scott是个独立的技 术咨询顾问,培训师,作家,最近完成了将由Sams出版社出版的新作,24小时内精通ASP.NET 2.0。他的联系电邮为mitchell@4guysfromrolla.com,也可以通过他的博客http://ScottOnWriting.NET与他联系。

0
0

.NET技术热门文章

    .NET技术最新文章

      最新新闻

        热门新闻