Repeater中嵌套Repeater的樣本介紹

來源:互聯網
上載者:User

 在某些特殊情況下是需要在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> 
相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。