用Repeater控件显示主从关系数据表

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对应!

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值