Repeater嵌套

本文介绍如何使用ASP.NET中的Repeater控件进行数据绑定,展示了一个具体的例子,包括HTML页面布局和.cs文件中绑定数据的逻辑。通过两个Repeater控件分别绑定类别和子类别数据,实现动态生成导航菜单。

效果图

HTML页面

 <asp:Repeater runat="server" ID="rptypelist" OnItemDataBound="rptypelist_ItemDataBound">
      <ItemTemplate>
          <div class="subnav_cp02">
              <span><%#Eval("ItemName") %></span>
                 <dl>
                     <dd>
                        <asp:Repeater runat="server" ID="rpquestionlist">
                           <ItemTemplate>
                              <a href="/ProductList.aspx?ID=<%#Eval("Id")%>"><%#Eval("ItemName") %></a>
                           </ItemTemplate>
                         </asp:Repeater>
                       </dd>
                   </dl>
            </div>
      </ItemTemplate>
  </asp:Repeater>

引用空间

using System.Web.UI.WebControls;
using System.Data;

.cs文件

  public void RpTypeBind()
  {      
   //数据源绑定的是一张表
this.rptypelist.DataSource = Letao.BLL.ProductCategory.GetDataSet(0).Tables[0]; this.rptypelist.DataBind(); } //在绑定分类品名时,绑定分类下的产品 public void rptypelist_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { Repeater rptProduct = (Repeater)e.Item.FindControl("rpquestionlist"); //找到分类Repeater关联的数据项 DataRowView rowv = (DataRowView)e.Item.DataItem; //提取分类ID int CategorieId = Convert.ToInt32(rowv["ID"]); //根据分类ID查询该分类下的产品,并绑定产品Repeater rptProduct.DataSource =Letao.BLL.ProductCategory.GetDataSet(CategorieId).Tables[0]; rptProduct.DataBind(); } }

备注:绑定大类时返回的是表结构

 

 

SQLSERVER类库

 /// <summary>
        /// 根据父ID取得类别列表
        /// </summary>
        /// <param name="pItemId">父ID</param>
        /// <returns></returns>
        public DataSet GetDataSet(int ParentId)
        {
            string sql = "select * from ProductCategory where ParentId=" + ParentId + " and ItemName<>'' order by SortValue asc,id asc";
            return DBUtility.DbHelperSQL.ExecuteDataSet(ConnString.connReadonly, CommandType.Text, sql, null);
        }
根据父ID取得类别列表

数据库结构

转载于:https://www.cnblogs.com/haozhenjie819/p/4067522.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值