net 2.0中的Repeater嵌套 的两种方法
2007-08-31 16:28
127 查看
前台页面部分:
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<asp:Repeater id="rptCategories" runat="server">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<HeaderTemplate>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<table width="100%" border="0" cellspacing="0" cellpadding="0">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</HeaderTemplate>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<ItemTemplate>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<!--分类名称-->
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
<tr><th><%
![](http://www.cnblogs.com/Images/dot.gif)
# DataBinder.Eval(Container.DataItem, "TypeName") %></th></tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<!--分类下的产品-->
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<asp:Repeater id="rptProduct" runat="server">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<ItemTemplate>
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
<tr><td><a href='ProductInfo.aspx?Id=<%# DataBinder.Eval(Container.DataItem, "ID") %>'><%
![](http://www.cnblogs.com/Images/dot.gif)
# DataBinder.Eval(Container.DataItem, "ProductName") %></a></td></tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</ItemTemplate>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</asp:Repeater>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</ItemTemplate>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<FooterTemplate>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</table>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</FooterTemplate>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</asp:Repeater>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
后台代码部分(部分代码):
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//在绑定分类品名时,绑定分类下的产品
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
private void rptCategories_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
BLL.Products products =new BLL.Products();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Repeater rptProduct = (Repeater) e.Item.FindControl("rptProduct");
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//找到分类Repeater关联的数据项
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
DataRowView rowv = (DataRowView)e.Item.DataItem;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//提取分类ID
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
int CategorieId = Convert.ToInt32(rowv["ID"]);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//根据分类ID查询该分类下的产品,并绑定产品Repeater
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
rptProduct.DataSource = products.GetProductsByCategorieId(CategorieId);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
rptProduct.DataBind();
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
另一种方法:
前台:
<!-- start parent repeater -->
<asp:repeater id="parentRepeater" runat="server">
<itemtemplate>
<b><%# DataBinder.Eval(Container.DataItem,"au_id") %></b><br>
<!-- start child repeater -->
<asp:repeater id="childRepeater" datasource='<%# ((DataRowView)Container.DataItem)
.Row.GetChildRows("myrelation") %>' runat="server">
<itemtemplate>
<%# DataBinder.Eval(Container.DataItem, "[/"title_id/"]")%><br>
</itemtemplate>
</asp:repeater>
<!-- end child repeater -->
</itemtemplate>
</asp:repeater>
<!-- end parent repeater -->
后台:public partial class NestedRepeater : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Repeater childRepeater;//parentRepeater;
public NestedRepeater()
{
Page.Init += new System.EventHandler(Page_Init);
}
public void Page_Load(object sender, EventArgs e)
{
//Create the connection and DataAdapter for the Authors table.
SqlConnection cnn = new SqlConnection("server=.;database=pubs; user id=sa;pwd=;");
SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors", cnn);
//Create and fill the DataSet.
DataSet ds = new DataSet();
cmd1.Fill(ds, "authors");
//Create a second DataAdapter for the Titles table.
SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor", cnn);
cmd2.Fill(ds, "titles");
//Create the relation bewtween the Authors and Titles tables.
ds.Relations.Add("myrelation",
ds.Tables["authors"].Columns["au_id"],
ds.Tables["titles"].Columns["au_id"]);
//Bind the Authors table to the parent Repeater control, and call DataBind.
parentRepeater.DataSource = ds.Tables["authors"];
Page.DataBind();
//Close the connection.
cnn.Close();
}
private void Page_Init(object sender, EventArgs e)
{
InitializeComponent();
}
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<asp:Repeater id="rptCategories" runat="server">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<HeaderTemplate>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<table width="100%" border="0" cellspacing="0" cellpadding="0">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</HeaderTemplate>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<ItemTemplate>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<!--分类名称-->
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
<tr><th><%
![](http://www.cnblogs.com/Images/dot.gif)
# DataBinder.Eval(Container.DataItem, "TypeName") %></th></tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<!--分类下的产品-->
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<asp:Repeater id="rptProduct" runat="server">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<ItemTemplate>
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
<tr><td><a href='ProductInfo.aspx?Id=<%# DataBinder.Eval(Container.DataItem, "ID") %>'><%
![](http://www.cnblogs.com/Images/dot.gif)
# DataBinder.Eval(Container.DataItem, "ProductName") %></a></td></tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</ItemTemplate>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</asp:Repeater>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</ItemTemplate>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<FooterTemplate>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</table>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</FooterTemplate>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</asp:Repeater>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
后台代码部分(部分代码):
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//在绑定分类品名时,绑定分类下的产品
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
private void rptCategories_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
BLL.Products products =new BLL.Products();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Repeater rptProduct = (Repeater) e.Item.FindControl("rptProduct");
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//找到分类Repeater关联的数据项
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
DataRowView rowv = (DataRowView)e.Item.DataItem;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//提取分类ID
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
int CategorieId = Convert.ToInt32(rowv["ID"]);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//根据分类ID查询该分类下的产品,并绑定产品Repeater
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
rptProduct.DataSource = products.GetProductsByCategorieId(CategorieId);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
rptProduct.DataBind();
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
另一种方法:
前台:
<!-- start parent repeater -->
<asp:repeater id="parentRepeater" runat="server">
<itemtemplate>
<b><%# DataBinder.Eval(Container.DataItem,"au_id") %></b><br>
<!-- start child repeater -->
<asp:repeater id="childRepeater" datasource='<%# ((DataRowView)Container.DataItem)
.Row.GetChildRows("myrelation") %>' runat="server">
<itemtemplate>
<%# DataBinder.Eval(Container.DataItem, "[/"title_id/"]")%><br>
</itemtemplate>
</asp:repeater>
<!-- end child repeater -->
</itemtemplate>
</asp:repeater>
<!-- end parent repeater -->
后台:public partial class NestedRepeater : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Repeater childRepeater;//parentRepeater;
public NestedRepeater()
{
Page.Init += new System.EventHandler(Page_Init);
}
public void Page_Load(object sender, EventArgs e)
{
//Create the connection and DataAdapter for the Authors table.
SqlConnection cnn = new SqlConnection("server=.;database=pubs; user id=sa;pwd=;");
SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors", cnn);
//Create and fill the DataSet.
DataSet ds = new DataSet();
cmd1.Fill(ds, "authors");
//Create a second DataAdapter for the Titles table.
SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor", cnn);
cmd2.Fill(ds, "titles");
//Create the relation bewtween the Authors and Titles tables.
ds.Relations.Add("myrelation",
ds.Tables["authors"].Columns["au_id"],
ds.Tables["titles"].Columns["au_id"]);
//Bind the Authors table to the parent Repeater control, and call DataBind.
parentRepeater.DataSource = ds.Tables["authors"];
Page.DataBind();
//Close the connection.
cnn.Close();
}
private void Page_Init(object sender, EventArgs e)
{
InitializeComponent();
}
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
}
相关文章推荐
- net 2.0中的Repeater嵌套 的两种方法
- asp.net中Repeater嵌套绑定的方法(查询新闻类别和新闻类别下的新闻) .
- asp.net中Repeater嵌套绑定的方法(使用两个Repeater做子类别绑定)
- 两个Repeater嵌套实现动态菜单(ado.net+sql和xml+Linq两种读取数据方式)
- ASP.NET 2.0 之在Repeater中嵌套使用Repeater
- asp.net asp:Repeater嵌套绑定方法(1)
- asp.net关于repeater嵌套repeater的方法
- asp.net实现DataList与Repeater嵌套绑定的方法
- asp.net 2.0 中的两种加密方法
- asp.net中Repeater嵌套绑定的方法(使用两个Repeater做子类别绑定)
- asp.net实现DataList与Repeater嵌套绑定的方法
- asp.net asp:Repeater嵌套绑定方法(2)
- ASP.NET 2.0中给DropDownList服务器控件添加项的新方法
- ASP.Net 中实现多语言界面的方法(2.0以上版本)
- 《TVS2.0应用实录》005:Together for VS.NET 2.0 Bugs及解决方法(part 1)
- asp.net实现DropDownList、ListBox无刷新三级联动的两种方法
- [ASP.NET]两种导出网页到EXCEL的方法
- uiautomator2.0的配置的两种方法
- MetaBuilders在ASP.NET FORUMS2.0中的应用方法
- asp.net Repeater控件的说明及详细介绍及使用方法