nested repeate 嵌套方案一
asp.net2.0中使用不使用 relation而使用DataView.RowFilter进行主从表显示
1 <%@ Page Language="C#" %>
2 <%@ Import Namespace="System.Data" %>
3 <%@ Import Namespace="System.Data.SqlClient" %>
4
5 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6
7 <script runat="server">
8
9 private DataSet _ds;
10
11 protected override void OnLoad(EventArgs e)
12 {
13 base.OnLoad(e);
14
15 RetrieveInformation();
16 BindOuterRepeater();
17 }
18
19 private void RetrieveInformation()
20 {
21 using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString))
22 {
23 using (SqlCommand cmd = new SqlCommand("select * from categories", conn))
24 {
25 conn.Open();
26 SqlDataAdapter da = new SqlDataAdapter(cmd);
27 _ds = new DataSet();
28 da.Fill(_ds, "OuterTable");
29
30 cmd.CommandText = "select * from products";
31 da.Fill(_ds, "InnerTable");
32 }
33 }
34 }
35
36 private void BindOuterRepeater()
37 {
38 RepeaterOuter.DataSource = _ds.Tables["OuterTable"];
39 RepeaterOuter.DataBind();
40 }
41
42 public DataView BindInnerRepeater(string id)
43 {
44 DataView dv = new DataView(_ds.Tables["InnerTable"]);
45
46 dv.RowFilter = "CategoryID = " + id;
47
48 return dv;
49 }
50
51 </script>
52
53 <html xmlns="http://www.w3.org/1999/xhtml">
54 <head runat="server">
55 <title>Untitled Page</title>
56 <style type="text/css">
57 .outer { margin-left:20px; color:#c00; }
58 .inner { margin-left:40px; color:#000; }
59 </style>
60 </head>
61 <body>
62 <form id="form1" runat="server">
63 <div>
64 <asp:Repeater runat="server" ID="RepeaterOuter">
65 <ItemTemplate>
66 <span class="outer"><%# DataBinder.Eval(Container.DataItem, "CategoryName") %></span><br />
67 <asp:Repeater runat="server" ID="RepeaterInner" DataSource='<%# BindInnerRepeater(DataBinder.Eval(Container.DataItem, "CategoryID").ToString()) %>'>
68 <ItemTemplate>
69 <span class="inner"><%# DataBinder.Eval(Container.DataItem, "ProductName") %></span><br />
70 </ItemTemplate>
71 </asp:Repeater>
72 </ItemTemplate>
73 </asp:Repeater>
74 </div>
75 </form>
76 </body>
77 </html>
1 <%@ Page Language="C#" %>
2 <%@ Import Namespace="System.Data" %>
3 <%@ Import Namespace="System.Data.SqlClient" %>
4
5 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6
7 <script runat="server">
8
9 private DataSet _ds;
10
11 protected override void OnLoad(EventArgs e)
12 {
13 base.OnLoad(e);
14
15 RetrieveInformation();
16 BindOuterRepeater();
17 }
18
19 private void RetrieveInformation()
20 {
21 using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString))
22 {
23 using (SqlCommand cmd = new SqlCommand("select * from categories", conn))
24 {
25 conn.Open();
26 SqlDataAdapter da = new SqlDataAdapter(cmd);
27 _ds = new DataSet();
28 da.Fill(_ds, "OuterTable");
29
30 cmd.CommandText = "select * from products";
31 da.Fill(_ds, "InnerTable");
32 }
33 }
34 }
35
36 private void BindOuterRepeater()
37 {
38 RepeaterOuter.DataSource = _ds.Tables["OuterTable"];
39 RepeaterOuter.DataBind();
40 }
41
42 public DataView BindInnerRepeater(string id)
43 {
44 DataView dv = new DataView(_ds.Tables["InnerTable"]);
45
46 dv.RowFilter = "CategoryID = " + id;
47
48 return dv;
49 }
50
51 </script>
52
53 <html xmlns="http://www.w3.org/1999/xhtml">
54 <head runat="server">
55 <title>Untitled Page</title>
56 <style type="text/css">
57 .outer { margin-left:20px; color:#c00; }
58 .inner { margin-left:40px; color:#000; }
59 </style>
60 </head>
61 <body>
62 <form id="form1" runat="server">
63 <div>
64 <asp:Repeater runat="server" ID="RepeaterOuter">
65 <ItemTemplate>
66 <span class="outer"><%# DataBinder.Eval(Container.DataItem, "CategoryName") %></span><br />
67 <asp:Repeater runat="server" ID="RepeaterInner" DataSource='<%# BindInnerRepeater(DataBinder.Eval(Container.DataItem, "CategoryID").ToString()) %>'>
68 <ItemTemplate>
69 <span class="inner"><%# DataBinder.Eval(Container.DataItem, "ProductName") %></span><br />
70 </ItemTemplate>
71 </asp:Repeater>
72 </ItemTemplate>
73 </asp:Repeater>
74 </div>
75 </form>
76 </body>
77 </html>
浙公网安备 33010602011771号