网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ASP.NET 2.0数据控件的嵌套

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/13
rceID="ProductsByCategoryDataSource">
            <HeaderTemplate>
            <ul>
            </HeaderTemplate>
            <ItemTemplate>
            <li><strong><%# Eval("ProductName") %></strong> -
            sold as <%# Eval("QuantityPerUnit") %> at
            <%# Eval("UnitPrice", "{0:C}") %></li>
            </ItemTemplate>
            <FooterTemplate>
            </ul>
            </FooterTemplate>
            </asp:Repeater>
            <asp:ObjectDataSource ID="ProductsByCategoryDataSource" runat="server"
            SelectMethod="GetProductsByCategoryID" TypeName="ProductsBLL">
            <SelectParameters>
            <asp:Parameter Name="CategoryID" Type="Int32" />
            </SelectParameters>
            </asp:ObjectDataSource>
           
 


当使用ObjectDataSource方法时我们需要设置ProductsByCategoryList Repeater的DataSourceID为ObjectDataSource(ProductsByCategoryDataSource).注意ObjectDataSource有一个<asp:Parameter>来指定传给GetProductsByCategoryID(categoryID)的categoryID.但是我们怎么来指定这个值呢?我们可以设置DefaultValue属性为<asp:Parameter>,见下面的代码:

ASP.NET
           
 <asp:Parameter Name="CategoryID" Type="Int32" DefaultValue=''<%# Eval("CategoryID")'' />
           
 

不幸的,数据绑定语法只能用在有DataBinding事件的控件里.Parameter类没有这样的事件,因此这样使用会出错.

我们需要为CategoryList Repeater的ItemDataBound创建一个事件处理来设置这个值.每个item绑定到Repeater时激发ItemDataBound事件.因此每次外层的Repeater激发这个时间时,我们可以将当前的CaegoryID的值传给ProductsByCategoryDataSource ObjectDataSource的CategoryID参数.

下面的代码是为CategoryList Repeater的ItemDataBound创建一个event handler:

C#
          

  • 上一篇资讯: ASP.NET GridView的分页功能
  • 网学推荐

    免费论文

    原创论文

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号