萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> asp.net編程 >> Repeater中嵌套Repeater的示例介紹

Repeater中嵌套Repeater的示例介紹

 在某些特殊情況下是需要在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> 
copyright © 萬盛學電腦網 all rights reserved