Repeater中嵌套Repeater的示例介绍
介绍 示例 嵌套 Repeater
2023-06-13 09:15:15 时间
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!Page.IsPostBack)
{
this.dtCategory=GetCategoryTable();
this.dtProduct=GetProductTable();
rptCategoryList.DataSource=dtCategory;
rptCategoryList.DataBind();
}
}
//准备一张分类表
DataTableGetCategoryTable()
{
DataTabledt=newDataTable();
dt.Columns.Add("CategoryId",typeof(int));
dt.Columns.Add("CategoryTitle",typeof(string));
for(inti=1;i<=3;i++)
{
DataRowrow=dt.NewRow();
row["CategoryId"]=i;
row["CategoryTitle"]="分类名字"+i+"";
dt.Rows.Add(row);
}
returndt;
}
//准备一张产品表
DataTableGetProductTable()
{
DataTabledt=newDataTable();
dt.Columns.Add("ProductTitle",typeof(string));
dt.Columns.Add("CategoryId",typeof(int));
for(inti=1;i<=9;i++)
{
DataRowrow=dt.NewRow();
row["ProductTitle"]="产品名字"+i+"";
if(i>6)row["CategoryId"]=3;
elseif(i>3)row["CategoryId"]=2;
elserow["CategoryId"]=1;
dt.Rows.Add(row);
}
returndt;
}
//获取某个类别的产品
DataTableGetProductTable(intcategoryId)
{
DataViewdv=this.dtProduct.DefaultView;
dv.RowFilter="CategoryId="+categoryId+"";
returndv.ToTable();
}
protectedvoidrptCategoryList_ItemDataBound(objectsender,RepeaterItemEventArgse)
{
if(e.Item.ItemType==ListItemType.AlternatingItem||e.Item.ItemType==ListItemType.Item)
{
DataRowViewdrv=(DataRowView)e.Item.DataItem;
LiteralltlTitle=(Literal)e.Item.FindControl("ltlTitle");
ltlTitle.Text=drv["CategoryTitle"].ToString();
RepeaterrptProductList=(Repeater)e.Item.FindControl("rptProductList");
rptProductList.DataSource=GetProductTable(Convert.ToInt32(drv["CategoryId"]));
rptProductList.DataBind();
}
}
protectedvoidrptProductList_ItemDataBound(objectsender,RepeaterItemEventArgse)
{
if(e.Item.ItemType==ListItemType.AlternatingItem||e.Item.ItemType==ListItemType.Item)
{
DataRowViewdrv=(DataRowView)e.Item.DataItem;
LiteralltlTitle=(Literal)e.Item.FindControl("ltlTitle");
ltlTitle.Text=drv["ProductTitle"].ToString();
}
}
前台aspx代码
<</CODE>formid="form1"runat="server">
<</CODE>div>
<</CODE>asp:RepeaterID="rptCategoryList"runat="server"OnItemDataBound="rptCategoryList_ItemDataBound">
<</CODE>ItemTemplate>
<</CODE>divclass="listBox">
<</CODE>divclass="title">
<</CODE>asp:LiteralID="ltlTitle"runat="server"></</CODE>asp:Literal></</CODE>div>
<</CODE>divclass="content">
<</CODE>ul>
<</CODE>asp:RepeaterID="rptProductList"runat="server"OnItemDataBound="rptProductList_ItemDataBound">
<</CODE>ItemTemplate>
<</CODE>li>
<</CODE>asp:LiteralID="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>
相关文章
- 汇聚思想之光,助推技术远航 | TVP专家介绍
- 【说站】java中Class类的概念介绍
- Python脚本介绍与基础函数_Python自学第二节
- SpringBoot 整合 Kafka 实现千万级数据异步处理,实战介绍!
- BeautifulSoup的基本功能介绍
- PostgreSQL常用优化技巧示例介绍
- 推荐最佳的经典MySQL书籍:详细介绍、案例分析及高效学习。(经典mysql书籍)
- 如何使用Linux恢复文件:简单易用的恢复软件介绍(linux恢复文件 软件)
- Oracle关机完整的关机步骤介绍(oracle关机过程)
- Oracle存储过程基本语法介绍
- js弹出框轻量级插件jquery.boxy使用介绍
- Android通过LIstView显示文件列表的两种方法介绍
- Jquery选择子控件"大于号"和""区别介绍及使用示例
- AJAX如何接收JSON数据示例介绍
- javascriptready和load事件的区别示例介绍
- javascript预加载图片、css、js的方法示例介绍
- JAVAStack详细介绍和示例学习
- jsjq单击和双击区分示例介绍
- JS脚本defer的作用示例介绍
- php中rrnt的区别示例介绍
- oracle表空间中空表统计方法示例介绍
- C#中的switchcase使用介绍
- 在JavaScript中判断整型的N种方法示例介绍
- jqueryJSON的解析方式示例介绍