用Repeater控件显示主从关系数据表
2007-11-14 23:36
483 查看
TOP.ASPX
1
<%@ Page Debug="true" language="c#" Codebehind="Top.aspx.cs" Inherits="QA.Top" %>
2
3
<HTML>
4
<HEAD>
5
<title>Top</title>
6
<meta name="CODE_LANGUAGE" Content="C#">
7
</HEAD>
8
<body>
9
<form id="Form1" method="post" runat="server">
10
<asp:repeater ID="Class" runat="server" OnItemCreated="Class_ItemCreated">
11
<itemtemplate> <br><b><%# DataBinder.Eval(Container.DataItem, "ClassName") %>:</b>
12
<asp:repeater ID="Forum" runat="server">
13
<itemtemplate><%# DataBinder.Eval(Container.DataItem, "ClassName") %>
14
</itemtemplate>
15
</asp:repeater>
16
</itemtemplate>
17
</asp:repeater>
18
</form>
19
</body>
20
</HTML>
21
Top.aspx.cs
1
using System;
2
using System.Configuration;
3
using System.Data;
4
using System.Data.OleDb;
5
using System.Text;
6
using System.Web;
7
using System.Web.UI;
8
using System.Web.UI.WebControls;
9
using System.Web.UI.HtmlControls;
10
11
namespace QA
12
{
13
/**//// <summary>
14
/// Top 的摘要说明。
15
/// </summary>
16
public class Top : System.Web.UI.Page
17
{
18
/**//// <summary>
19
/// 数据库连接
20
/// </summary>
21
22
public static string strConn
23
{
24
get
25
{
26
StringBuilder strResult = new StringBuilder(ConfigurationSettings.AppSettings["Provider"]);
27
strResult.Append("; ");
28
strResult.Append("Data Source = ");
29
strResult.Append(HttpContext.Current.Server.MapPath("."));
30
strResult.Append("//");
31
strResult.Append(ConfigurationSettings.AppSettings["DataSource"]);
32
return strResult.ToString();
33
}
34
}
35
protected string strSQL;
36
protected OleDbDataAdapter Adpt = new OleDbDataAdapter();
37
protected DataSet Ds = new DataSet();
38
protected OleDbConnection Conn = new OleDbConnection(strConn);
39
protected Repeater Class = new Repeater();
40
protected OleDbCommand Cmd = new OleDbCommand();
41
42
private void Page_Load(object sender, System.EventArgs e)
43
{
44
if(!Page.IsPostBack)
45
{
46
strSQL = "SELECT * FROM Qclass WHERE Dclass = 0";
47
Adpt = new OleDbDataAdapter(strSQL, Conn);
48
Adpt.Fill(Ds, "Class");
49
Class.DataSource = Ds.Tables["Class"].DefaultView;
50
Class.DataBind();
51
}
52
53
}
54
protected DataTable Forum_Source(int id)
55
{
56
if (Ds.Tables.Contains("Forum") && Ds.Tables.CanRemove(Ds.Tables["Forum"]))
57
Ds.Tables.Remove("Forum");
58
strSQL = "SELECT * FROM Qclass WHERE Dclass = @id";
59
Cmd = new OleDbCommand(strSQL, Conn);
60
Cmd.Parameters.Add(new OleDbParameter("@id", OleDbType.Integer)).Value = id;
61
Adpt = new OleDbDataAdapter(Cmd);
62
Adpt.Fill(Ds, "Forum");
63
return Ds.Tables["Forum"];
64
}
65
//控件调用的OnItemCreated类
66
protected void Class_ItemCreated(object sender, RepeaterItemEventArgs e)
67
{
68
((Repeater)e.Item.FindControl("Forum")).DataSource = Forum_Source(int.Parse(((System.Data.DataRowView)e.Item.DataItem)["id"].ToString())).DefaultView;
69
}
70
71
}
72
}
73
数据库表如下:
当Dclass为0时,此分类为主分类,当Dclass不为0时为小分类,并与主分类ID对应!
1
<%@ Page Debug="true" language="c#" Codebehind="Top.aspx.cs" Inherits="QA.Top" %>
2
3
<HTML>
4
<HEAD>
5
<title>Top</title>
6
<meta name="CODE_LANGUAGE" Content="C#">
7
</HEAD>
8
<body>
9
<form id="Form1" method="post" runat="server">
10
<asp:repeater ID="Class" runat="server" OnItemCreated="Class_ItemCreated">
11
<itemtemplate> <br><b><%# DataBinder.Eval(Container.DataItem, "ClassName") %>:</b>
12
<asp:repeater ID="Forum" runat="server">
13
<itemtemplate><%# DataBinder.Eval(Container.DataItem, "ClassName") %>
14
</itemtemplate>
15
</asp:repeater>
16
</itemtemplate>
17
</asp:repeater>
18
</form>
19
</body>
20
</HTML>
21
Top.aspx.cs
1
using System;
2
using System.Configuration;
3
using System.Data;
4
using System.Data.OleDb;
5
using System.Text;
6
using System.Web;
7
using System.Web.UI;
8
using System.Web.UI.WebControls;
9
using System.Web.UI.HtmlControls;
10
11
namespace QA
12
{
13
/**//// <summary>
14
/// Top 的摘要说明。
15
/// </summary>
16
public class Top : System.Web.UI.Page
17
{
18
/**//// <summary>
19
/// 数据库连接
20
/// </summary>
21
22
public static string strConn
23
{
24
get
25
{
26
StringBuilder strResult = new StringBuilder(ConfigurationSettings.AppSettings["Provider"]);
27
strResult.Append("; ");
28
strResult.Append("Data Source = ");
29
strResult.Append(HttpContext.Current.Server.MapPath("."));
30
strResult.Append("//");
31
strResult.Append(ConfigurationSettings.AppSettings["DataSource"]);
32
return strResult.ToString();
33
}
34
}
35
protected string strSQL;
36
protected OleDbDataAdapter Adpt = new OleDbDataAdapter();
37
protected DataSet Ds = new DataSet();
38
protected OleDbConnection Conn = new OleDbConnection(strConn);
39
protected Repeater Class = new Repeater();
40
protected OleDbCommand Cmd = new OleDbCommand();
41
42
private void Page_Load(object sender, System.EventArgs e)
43
{
44
if(!Page.IsPostBack)
45
{
46
strSQL = "SELECT * FROM Qclass WHERE Dclass = 0";
47
Adpt = new OleDbDataAdapter(strSQL, Conn);
48
Adpt.Fill(Ds, "Class");
49
Class.DataSource = Ds.Tables["Class"].DefaultView;
50
Class.DataBind();
51
}
52
53
}
54
protected DataTable Forum_Source(int id)
55
{
56
if (Ds.Tables.Contains("Forum") && Ds.Tables.CanRemove(Ds.Tables["Forum"]))
57
Ds.Tables.Remove("Forum");
58
strSQL = "SELECT * FROM Qclass WHERE Dclass = @id";
59
Cmd = new OleDbCommand(strSQL, Conn);
60
Cmd.Parameters.Add(new OleDbParameter("@id", OleDbType.Integer)).Value = id;
61
Adpt = new OleDbDataAdapter(Cmd);
62
Adpt.Fill(Ds, "Forum");
63
return Ds.Tables["Forum"];
64
}
65
//控件调用的OnItemCreated类
66
protected void Class_ItemCreated(object sender, RepeaterItemEventArgs e)
67
{
68
((Repeater)e.Item.FindControl("Forum")).DataSource = Forum_Source(int.Parse(((System.Data.DataRowView)e.Item.DataItem)["id"].ToString())).DefaultView;
69
}
70
71
}
72
}
73
数据库表如下:
当Dclass为0时,此分类为主分类,当Dclass不为0时为小分类,并与主分类ID对应!
相关文章推荐
- 用Repeater控件显示主从关系数据表
- 利用Repeater控件显示主-从关系数据表
- 利用Repeater控件显示主-从关系数据表
- 利用Repeater控件显示主-从关系数据表 (转)
- 利用Repeater控件显示主-从关系数据表
- 利用Repeater控件显示主-从关系数据表
- 利用Repeater控件显示主-从关系数据表
- 利用Repeater控件显示主-从关系数据表
- 利用Repeater控件显示主-从关系数据表
- 利用Repeater控件显示主-从关系数据表
- 本文介绍了一种利用Repeater控件显示主-从关系数据表的方法。
- Repeater控件显示主-从关系数据表的方法。
- 利用Repeater控件显示主-从关系数据表 (转)
- 利用Repeater控件显示主-从关系数据表
- [导入]关于孟子E章《利用Repeater控件显示主-从关系数据表》的一点补充
- 利用Repeater控件显示主-从关系数据表
- 关于对孟子E章《利用Repeater控件显示主-从关系数据表》的一点补充(转)
- 利用Repeater控件显示主-从关系数据表
- 本文介绍了一种利用Repeater控件显示主-从关系数据表的方法。
- 利用Repeater控件显示主-从关系数据表