Repeater的嵌套
来源:互联网 发布:录制视频软件 知乎 编辑:程序博客网 时间:2024/06/06 05:37
废话不多说,先上效果图。
为了达到这样的显示效果, 同时为了后台修改后,前台也直接修改的效果。用了repeater嵌套。
前台代码:
<asp:Repeater ID="Rep_StreetName" runat="server" > <ItemTemplate> <asp:Label ID="LID" Text='<%# Eval("StreetNo")%>' runat="server" Visible="false"></asp:Label> <div class="<%# Eval("StreetCss")%>"> <div class="DefAreaT"><%# Eval("StreetName")%></div> <div class="DefAreaC"> <ul> <asp:Repeater ID="Rep_SNS" runat="server"> <ItemTemplate> <li><a href="homeList.aspx?homeID=<%# Eval("SNSNo")%>"><%# Eval("SNSName")%></a></li> </ItemTemplate> </asp:Repeater> </ul> </div> </div> </ItemTemplate> </asp:Repeater>
后台页代码:
/// <summary> /// 绑定办事处 /// </summary> private void Bind_Street() { string strSql = "select SortNo, StreetNo,StreetName from T_SNSStreetOffice order by SortNo"; DataTable myDt = myDbAccess.GetTable(strSql); DataTable DT = new DataTable(); DT.Columns.Add("StreetCss"); DT.Columns.Add("StreetName"); DT.Columns.Add("StreetNo"); for (int i = 0; i < myDt.Rows.Count; i++) { DataRow dr = DT.NewRow(); if (i % 2 == 0) { dr[0] = "DefArea BgColorA"; } else { dr[0] = "DefArea BgColorB"; } dr[1] = myDt.Rows[i]["StreetName"].ToString(); dr[2] = myDt.Rows[i]["StreetNo"].ToString(); DT.Rows.Add(dr); } Rep_StreetName.DataSource = DT; Rep_StreetName.DataBind(); foreach (RepeaterItem item in Rep_StreetName.Items) { Label lblid = item.FindControl("LID") as Label; Repeater rp = item.FindControl("Rep_SNS") as Repeater; string strSql1 = "select ID,SNSNo,SNSName from T_SNSInfo where StreetNO='"+lblid.Text+"'"; DataTable myDt1 = myDbAccess.GetTable(strSql1); DataTable DT1 = new DataTable(); DT1.Columns.Add("SNSName"); DT1.Columns.Add("SNSNo"); for (int i = 0; i < myDt1.Rows.Count; i++) { DataRow dr = DT1.NewRow(); dr[0] = myDt1.Rows[i]["SNSName"].ToString(); dr[1] = myDt1.Rows[i]["SNSNo"].ToString(); DT1.Rows.Add(dr); } rp.DataSource = DT1; rp.DataBind(); } }
没有添加注释,这里解说一下。
首先外层Repeater里加入了一个不显示的label <asp:Label ID="LID" Text='<%# Eval("StreetNo")%>' runat="server" Visible="false"></asp:Label>
是为了后台方便获取读出来的每个外层项的值。
先要把外层Repeater的数据绑定出来,内层的才可以绑定数据,外层绑定数据根据自己习惯写就行。
下面说一下内层绑定:
foreach (RepeaterItem item in Rep_StreetName.Items)//根据外层的项获取内层应该绑定的数据
{
Label lblid = item.FindControl("LID") as Label;//获取每个外层项的查询参数值
Repeater rp = item.FindControl("Rep_SNS") as Repeater;//获取内层Repeater
string strSql1 = "select ID,SNSNo,SNSName from T_SNSInfo where StreetNO='"+lblid.Text+"'";//查询语句
DataTable myDt1 = myDbAccess.GetTable(strSql1);//获取数据
DataTable DT1 = new DataTable();
DT1.Columns.Add("SNSName");
DT1.Columns.Add("SNSNo");
for (int i = 0; i < myDt1.Rows.Count; i++)//循环读取获取到的数据
{
DataRow dr = DT1.NewRow();
dr[0] = myDt1.Rows[i]["SNSName"].ToString();
dr[1] = myDt1.Rows[i]["SNSNo"].ToString();
DT1.Rows.Add(dr);
}
rp.DataSource = DT1;//绑定到内层Repeater
rp.DataBind();
}
- 嵌套Repeater的问题
- 嵌套的Repeater 控件
- 嵌套Repeater的绑定
- repeater的嵌套方法
- Repeater 的嵌套
- Repeater的嵌套
- 複雜的Repeater嵌套
- 控件Repeater的嵌套使用
- Flex 下的Repeater嵌套
- 关于repeater嵌套的用法
- Repeater控件的嵌套使用
- Repeater数据控件的嵌套
- Repeater嵌套
- 嵌套repeater
- repeater嵌套
- repeater嵌套
- Repeater嵌套
- repeater嵌套
- jquery dataTables demo
- 常用的sql语句
- 浅谈Overload和Override的区别
- HTTP请求报文和HTTP响应报文
- 解读ENVI Services Engine云解决方案
- Repeater的嵌套
- Android线程学习(三)之AsyncTask
- Android Intent 调用其他应用 setComponent
- eclipse开发hadooop2.2.0程序
- 学习笔记:android关于xml文件的操作
- Java Web开发环境的搭建
- clr via C#笔记(4)
- 如何通过ADO获得Access数据库中的所有用户表和表信息
- 大数据:技术与应用实践指南(中国工程院院士倪光南倾情作序,雷万云、毛新生、段永朝、安晖联合力荐)