程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Repeater中嵌套Repeater的示例介紹

Repeater中嵌套Repeater的示例介紹

編輯:關於ASP.NET

     在某些特殊情況下是需要在Repeater中嵌套使用Repeater的,下面有個不錯的示例,感興趣的朋友可以參考下

    代碼如下: protected void Page_Load(object sender, EventArgs e)  {  if (!Page.IsPostBack)  {  this.dtCategory = GetCategoryTable();  this.dtProduct = GetProductTable();  rptCategoryList.DataSource = dtCategory;  rptCategoryList.DataBind();  }  }  // 准備一張分類表  DataTable GetCategoryTable()  {  DataTable dt = new DataTable();  dt.Columns.Add("CategoryId", typeof(int));  dt.Columns.Add("CategoryTitle", typeof(string));  for (int i = 1; i <= 3; i++)  {  DataRow row = dt.NewRow();  row["CategoryId"] = i;  row["CategoryTitle"] = "分類名字 " + i + "";  dt.Rows.Add(row);  }  return dt;  }  // 准備一張產品表  DataTable GetProductTable()  {  DataTable dt = new DataTable();  dt.Columns.Add("ProductTitle", typeof(string));  dt.Columns.Add("CategoryId", typeof(int));  for (int i = 1; i <= 9; i++)  {  DataRow row = dt.NewRow();  row["ProductTitle"] = "產品名字 " + i + "";  if (i > 6) row["CategoryId"] = 3;  else if (i > 3) row["CategoryId"] = 2;  else row["CategoryId"] = 1;  dt.Rows.Add(row);  }  return dt;  }  // 獲取某個類別的產品  DataTable GetProductTable(int categoryId)  {  DataView dv = this.dtProduct.DefaultView;  dv.RowFilter = " CategoryId=" + categoryId + " ";  return dv.ToTable();  }  protected void rptCategoryList_ItemDataBound(object sender, RepeaterItemEventArgs e)  {  if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)  {  DataRowView drv = (DataRowView)e.Item.DataItem;  Literal ltlTitle = (Literal)e.Item.FindControl("ltlTitle");  ltlTitle.Text = drv["CategoryTitle"].ToString();  Repeater rptProductList = (Repeater)e.Item.FindControl("rptProductList");  rptProductList.DataSource = GetProductTable(Convert.ToInt32(drv["CategoryId"]));  rptProductList.DataBind();  }  }  protected void rptProductList_ItemDataBound(object sender, RepeaterItemEventArgs e)  {  if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)  {  DataRowView drv = (DataRowView)e.Item.DataItem;  Literal ltlTitle = (Literal)e.Item.FindControl("ltlTitle");  ltlTitle.Text = drv["ProductTitle"].ToString();  }  }    前台aspx代碼  代碼如下: <</CODE>form id="form1" runat="server">  <</CODE>div>  <</CODE>asp:Repeater ID="rptCategoryList" runat="server" OnItemDataBound="rptCategoryList_ItemDataBound">  <</CODE>ItemTemplate>  <</CODE>div class="listBox">  <</CODE>div class="title">  <</CODE>asp:Literal ID="ltlTitle" runat="server"></</CODE>asp:Literal></</CODE>div>  <</CODE>div class="content">  <</CODE>ul>  <</CODE>asp:Repeater ID="rptProductList" runat="server" OnItemDataBound="rptProductList_ItemDataBound">  <</CODE>ItemTemplate>  <</CODE>li>  <</CODE>asp:Literal ID="ltlTitle" runat="server"></</CODE>asp:Literal>  </</CODE>li>  </</CODE>ItemTemplate>  </</CODE>asp:Repeater>  </</CODE>ul>  </</CODE>div>  </</CODE>div>  </</CODE>ItemTemplate>  </</CODE>asp:Repeat</</CODE>div>  </</CODE>form> 
    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved