repeater嵌套
1 <asp:Repeater ID="repeaterParent" runat="server" OnItemDataBound="repeaterParent_ItemDataBound">
2 <ItemTemplate>
3 <!---------------------------------------------------------------------------------------->
4 <table width="186" border="1" class="MenuTB">
5 <tr>
6 <th style="cursor:pointer;">
7 <img src="images/comments.gif" / alt=""><%#Eval("MenuText") %>
8 </th>
9 </tr>
10 <tr style="display:none">
11 <td>
12 <ul>
13 <asp:Repeater ID="repeaterMinMenu" runat="server">
14 <ItemTemplate>
15 <li>
16 <a href="<%#Eval("MenuLink") %>" target="frmContent"><%#Eval("MenuText") %></a></li>
17 </ItemTemplate>
18 </asp:Repeater>
19 </ul>
20 </td>
21 </tr>
22 </table>
23 <!----------------------------------------------------------------------------------------->
24 </ItemTemplate>
25 </asp:Repeater>
2 <ItemTemplate>
3 <!---------------------------------------------------------------------------------------->
4 <table width="186" border="1" class="MenuTB">
5 <tr>
6 <th style="cursor:pointer;">
7 <img src="images/comments.gif" / alt=""><%#Eval("MenuText") %>
8 </th>
9 </tr>
10 <tr style="display:none">
11 <td>
12 <ul>
13 <asp:Repeater ID="repeaterMinMenu" runat="server">
14 <ItemTemplate>
15 <li>
16 <a href="<%#Eval("MenuLink") %>" target="frmContent"><%#Eval("MenuText") %></a></li>
17 </ItemTemplate>
18 </asp:Repeater>
19 </ul>
20 </td>
21 </tr>
22 </table>
23 <!----------------------------------------------------------------------------------------->
24 </ItemTemplate>
25 </asp:Repeater>
C#:
1 protected void BindParentRepeaterData()//绑定父repeater数据
2 {
3 string SqlGetParentMenu = @"SELECT MenuId,MenuText FROM website_Menu WHERE ParentId IS NULL OR ParentId=0";
4
5 DataTable dtGetParentMenu = SqlHelper.ExecuteDataset(Configurations.RemoteConnectionString, CommandType.Text, SqlGetParentMenu).Tables[0];
6
7 repeaterParent.DataSource = dtGetParentMenu;
8
9 repeaterParent.DataBind();
10 }
11
12
13 protected void repeaterParent_ItemDataBound(object sender, RepeaterItemEventArgs e)
14 {
15 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
16 {
17 int MenuId = Convert.ToInt32(((DataRowView)e.Item.DataItem).Row["MenuId"]);
18
19 Repeater repeaterMinMenu = (Repeater)e.Item.FindControl("repeaterMinMenu");
20
21 if (repeaterMinMenu != null)
22 {
23 string SqlGetMinMenu = string.Format(@"SELECT A.MenuId,A.ParentId,A.MenuText,A.MenuLink FROM dbo.website_Menu A
24 INNER JOIN dbo.website_RolesMenu B
25 ON A.MenuId = B.MenuId AND A.ParentId = {0}
26 INNER JOIN dbo.User_UsersRoles C
27 ON B.RoleId = C.RoleId AND C.UserId = {1}
28 GROUP BY A.MenuId,A.ParentId,A.MenuText,A.MenuLink ",MenuId,Kuqu.Components.Tickets.UserInfo.Id);
29
30 DataTable dtGetMinMenu = SqlHelper.ExecuteDataset(Configurations.RemoteConnectionString, CommandType.Text, SqlGetMinMenu).Tables[0];
31
32 repeaterMinMenu.DataSource = dtGetMinMenu;
33
34 repeaterMinMenu.DataBind();
35 }
36 }
37 }
2 {
3 string SqlGetParentMenu = @"SELECT MenuId,MenuText FROM website_Menu WHERE ParentId IS NULL OR ParentId=0";
4
5 DataTable dtGetParentMenu = SqlHelper.ExecuteDataset(Configurations.RemoteConnectionString, CommandType.Text, SqlGetParentMenu).Tables[0];
6
7 repeaterParent.DataSource = dtGetParentMenu;
8
9 repeaterParent.DataBind();
10 }
11
12
13 protected void repeaterParent_ItemDataBound(object sender, RepeaterItemEventArgs e)
14 {
15 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
16 {
17 int MenuId = Convert.ToInt32(((DataRowView)e.Item.DataItem).Row["MenuId"]);
18
19 Repeater repeaterMinMenu = (Repeater)e.Item.FindControl("repeaterMinMenu");
20
21 if (repeaterMinMenu != null)
22 {
23 string SqlGetMinMenu = string.Format(@"SELECT A.MenuId,A.ParentId,A.MenuText,A.MenuLink FROM dbo.website_Menu A
24 INNER JOIN dbo.website_RolesMenu B
25 ON A.MenuId = B.MenuId AND A.ParentId = {0}
26 INNER JOIN dbo.User_UsersRoles C
27 ON B.RoleId = C.RoleId AND C.UserId = {1}
28 GROUP BY A.MenuId,A.ParentId,A.MenuText,A.MenuLink ",MenuId,Kuqu.Components.Tickets.UserInfo.Id);
29
30 DataTable dtGetMinMenu = SqlHelper.ExecuteDataset(Configurations.RemoteConnectionString, CommandType.Text, SqlGetMinMenu).Tables[0];
31
32 repeaterMinMenu.DataSource = dtGetMinMenu;
33
34 repeaterMinMenu.DataBind();
35 }
36 }
37 }