repeater嵌套2个repeater 如何相互操作

repeater嵌套  时间:2021-06-13  阅读:()

Repeater嵌套循环出来的数据怎么是重复的,应该怎么解决啊,上图

<table> <asp:Repeater ID="repPeople" runat="server"> <ItemTemplate> <tr> 人 </tr> <asp:Repeater ID="repLastWeekWork" runat="server"> <ItemTemplate> <tr> 上个星期工作 </tr> </ItemTemplate> </asp:Repeater> <tr> 人 </tr> <asp:Repeater ID="repThisWeekWork" runat="server"> <ItemTemplate> <tr> 本周工作 </tr> </ItemTemplate> </asp:Repeater> </ItemTemplate> </asp:Repeater> </table>

我个人来看,你这里需要在内部嵌套2个repeater,一个用来绑定上周工作情况,一个用来绑定本周工作情况。

而最外层的repeater的数据源是List<People>,然后根据People.ID传递到上周工作情况表,与本周工作情况表中。

查询数据,绑定给嵌套的两个repeater

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

把两个表的数据都读出来,建立两个表的关系 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")%> </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(); } } } }

2个repeater 如何相互操作

第2个repeater 根据第一1个repeater所点的菜单显示出子菜单 不用repeater 用AJAX 吧 使用repeater 先显示第一层的菜单,点击第一层的菜单触发JS脚本,该JS脚本运用AJAX技术调用服务器程序,返回所点菜单下的子菜单,通过DOM操作显示子菜单。

这个方法应该是目前最流行的。

具体AJAX的教程网上很多的。

还有方法,你可以写一个方法,参数为第一层菜单的ID 输出 子菜单的HTML 在第一个repeater中调用这个方法。

这个方法 我感觉是实现起来最简单的。

非要嵌套也可以 你在“知道”里面搜一下 “repeater嵌套”,很多的!

DMIT:美国cn2 gia线路vps,高性能 AMD EPYC/不限流量(Premium Unmetered),$179.99/月起

DMIT怎么样?DMIT最近动作频繁,前几天刚刚上架了日本lite版VPS,正在酝酿上线日本高级网络VPS,又差不多在同一时间推出了美国cn2 gia线路不限流量的美国云服务器,不过价格太过昂贵。丐版只有30M带宽,月付179.99美元 !!目前,美国云服务器已经有个4个套餐,分别是,Premium(cn2 gia线路)、Lite(普通直连)、Premium Secure(带高防的cn2 gia线...

DiyVM:499元/月香港沙田服务器,L5630*2/16G内存/120G SSD硬盘/5M CN2线路

DiyVM是一家成立于2009年的国人主机商,提供的产品包括VPS主机、独立服务器租用等,产品数据中心包括中国香港、日本大阪和美国洛杉矶等,其中VPS主机基于XEN架构,支持异地备份与自定义镜像,VPS和独立服务器均可提供内网IP功能。商家VPS主机均2GB内存起步,三个地区机房可选,使用优惠码后每月69元起;独立服务器开设在香港沙田电信机房,CN2线路,自动化开通上架,最低499元/月起。下面以...

提速啦 韩国服务器 E3 16G 3IP 450元/月 韩国站群服务器 E3 16G 253IP 1100元/月

提速啦(www.tisula.com)是赣州王成璟网络科技有限公司旗下云服务器品牌,目前拥有在籍员工40人左右,社保在籍员工30人+,是正规的国内拥有IDC ICP ISP CDN 云牌照资质商家,2018-2021年连续4年获得CTG机房顶级金牌代理商荣誉 2021年赣州市于都县创业大赛三等奖,2020年于都电子商务示范企业,2021年于都县电子商务融合推广大使。资源优势介绍:Ceranetwo...

repeater嵌套为你推荐
视频压缩算法1分钟视频的大小在10M左右的格式有哪些?qq博客怎样开通QQ博客?网络审计网经科技1820听说是网络审计路由器,大家知道怎么样吗?设备支持多少用户啊vga接口定义电脑显示屏VGA是什么意思扫图扫图要怎么修图seo优化技术SEO技术是什么?鄂n鄂A鄂B鄂C鄂D鄂E鄂F鄂G鄂H鄂J鄂K鄂L鄂M鄂N鄂P鄂Q鄂R鄂S鄂T鄂U分别代表湖北省的哪些城市assemblyinfocsgo很跟cs有什么区别币众筹众筹有哪几种 众筹如何实现回报谷歌图片识别如何打开PICASA头像识别功能?
谷歌域名邮箱 万网域名证书查询 免费cn域名 ddos suspended 北京双线 阿里校园 免费全能主机 稳定免费空间 美国堪萨斯 中国网通测速 789电视剧 如何建立邮箱 服务器是干什么用的 网页提速 www789 中国电信测速网站 工信部网站备案查询 双线空间 锐速 更多