求.net里repeater嵌套使用的完整代码

求.net里repeater嵌套使用的完整代码,直接就能用的,(最好为非代码后置模式)用来做产品的二级的分级目录的!包括前台和后台的完整代码,总之越完整越好,拿来就能用的,,谢谢大家了。。
最佳答案追 加50分
要非代码后置的.net程序。前台后台代码完整的!谢谢大家了!

把两个表的数据都读出来,建立两个表的关系
ds.Relation.Add();

然后在父Repeater的ItemDataBind事件中找到子Repeater
在根据关系找到子Repeater对应的数据源,绑定上ok。

页面上:
<asp:Repeater id="Repeater1" runat="server">
<HeaderTemplate>
<table width="500">
<tr bgcolor=blue>
<td>用户留言显示</td>
</tr>
</HeaderTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
<ItemTemplate>
<tr bgcolor=aaaaaa>
<td>用户名:<%#DataBinder.Eval(Container.DataItem,"username")%></td>
</tr>
<tr>
<td>用户留言的显示</td>
</tr>
<tr>
<td><asp:Repeater id="Repeater2" runat="server">
<ItemTemplate>
留言信息<%#DataBinder.Eval(Container.DataItem,"content")%><br>
</ItemTemplate>
</asp:Repeater></td>
</tr>
</ItemTemplate>
</asp:Repeater>

cs代码:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

namespace AdoDotNet_Demo
{
/// <summary>
/// RepeaterLink1 的摘要说明。
/// </summary>
public class RepeaterLink1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Repeater Repeater2;
protected System.Web.UI.WebControls.Repeater Repeater1;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
string strconn = "server=.;uid=sa; pwd=;database=myweb";
SqlConnection conn = new SqlConnection(strconn);
SqlDataAdapter da = new SqlDataAdapter("select * from userinfo",conn);
DataSet ds = new DataSet();
da.Fill(ds,"user");
SqlDataAdapter da1 = new SqlDataAdapter("select * from content",conn);
da1.Fill(ds,"content");
ds.Relations.Add("relation1",ds.Tables["user"].Columns["UserName"],ds.Tables["content"].Columns["UserName"]);

Repeater1.DataSource = ds.Tables["user"];
Repeater1.DataBind();

}
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Repeater1.ItemDataBound += new System.Web.UI.WebControls.RepeaterItemEventHandler(this.Repeater1_ItemDataBound);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void Repeater1_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item)
{
//repeater1行数据获得到
DataRowView drv = (DataRowView)e.Item.DataItem;
DataView dv = drv.CreateChildView("relation1");

//根据行数据得到repeater2的数据源

//找到当前行中repeater2
System.Web.UI.WebControls.Repeater r = (System.Web.UI.WebControls.Repeater)e.Item.FindControl("Repeater2");
r.DataSource = dv;
r.DataBind();
}
}
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-09-11
后台.cs程序:

protected void objectiveCategory2_ItemDataBound

(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)

{ DataView dv = new DataView(this.dtCategory);

dv.RowFilter = "eloc_iparentid=" + this.dtCategory.Rows[e.Item.ItemIndex]["eloc_iparentid"].

ToString();

Repeater tempRepeater = (Repeater)e.Item.FindControl("elo_sdescription");

tempRepeater.DataSource = dv; tempRepeater.DataBind(); }

注意:其中第2层的 OnItemDataBound="objectiveCategory2_ItemDataBound 是重要部分,因为里层的repeater web里是认识不到的,只有在这指明了事件处理方法,才能触发后台程序里的方法。类似的也可以用这种方法多层嵌套,并能处理里面的事件。

第二点在 aspx 指明事件的在后台程序,需要protected 来限定访问限制,如用private 就会出现限制访问的错误提示。
第2个回答  2007-09-12
谢谢两位的回答,有没有非代码后置模式的源代码啊。。这种程序不好引用啊。。麻烦高手帮忙解答一下。。最佳答案一定加分

求.net里repeater嵌套使用的完整代码
public class RepeaterLink1 : System.Web.UI.Page { protected System.Web.UI.WebControls.Repeater Repeater2;protected System.Web.UI.WebControls.Repeater Repeater1;private void Page_Load(object sender, System.EventArgs e){ \/\/ 在此处放置用户代码以...

在.net中两个Repeater嵌套的时候怎样获得里面个Repeater里的控件啊?
protected void 外边的Repeater_ItemDataBound(object sender, RepeaterItemEventArgs e){ if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem){ Repeater rep = e.Item.FindControl("里面的Repeater") as Repeater;\/\/找到里层的repeater对象 DataRowVi...

关于.net中的repeater
<HeaderTemplate>UserID UserName UserPWD<\/HeaderTemplate> <ItemTemplate> <%#DataBinder.Eval(Container.DataItem,"userID") %> <%#DataBinder.Eval(Container.DataItem,"username") %> <%#DataBinder.Eval(Container.DataItem,"password") %> <\/ItemTemplate> <\/asp:Repeater> ---以上是Defa...

.net实体框架中repeater控件怎么用
<asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <a href="ShowPro.aspx?id=<%# Eval("id")%>"><img src="Land\/img\/<%# Eval("Img")%>" width="162" height="106" onload="javascript:myDrawImage(this,162,106);"\/> <a href="ShowPro.aspx?id=<%# ...

asp.net 控件Repeater
页面代码:<asp:Repeater id="dlData" runat="server" > <HeaderTemplate> <tb>自定义表格样式(头部标题)<\/tb> <tb>操作数据(头部标题)<\/tb> <\/HeaderTemplate> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "绑定数据源字段名")%> <asp:Button ID="btn_excel" runat="se...

asp.net 中 Repeate嵌套
rptTravelRoute.ItemDataBound += new RepeaterItemEventHandler(rptTravelRoute_ItemDataBound);先在后台rptTravelRoute.ItemDataBound +=按两次tab键就出来了,然后修改 RepeaterItemEventHandler方法里面的内容就可以了

asp.net中Repeater的嵌套问题
用repeater的ItemDataBound事件 --- aspx <asp:Repeater ID="repeater" runat="server" OnItemDataBound="repeater_ItemDataBound"> <ItemTemplate> <asp:Repeater ID="child" runat="server"> <ItemTemplate> ...<\/ItemTemplate> <\/asp:Repeater> <\/ItemTemplate> <\/asp:Repeater> --- aspx.cs...

关于asp.net 控件repeater的问题
<\/asp:Repeater> 后台代码 using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Collections...

asp.net中的repeater控件 如何使用
控件 DataSet ds = new DataSet("ntable");adapter.Fill(ds, "ntable");Repeater1.DataSource = ds.Tables["ntable"];Repeater1.DataBind();conn.Close(); \/\/关闭连接 以上代码仅供参考,如需帮助—qq:281966747(请注明:百度知道)另外,虚机团上产品团购,超级便宜 ...

.net怎么查找repeater中嵌套的repeater中的控件
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e){ Repeater rp = Repeater1.Items[e.Item.ItemIndex].FindControl("Repeater2") as Repeater;} protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e){ Repeater rp = e.Item.FindControl("...

相似回答