研究了一晚上才搞出来用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 QA12 {13 /// <summary>14 /// Top 的摘要说明。15 /// </summary>16 public class Top : System.Web.UI.Page17 {18 /// <summary>19 /// 数据库连接20 /// </summary>21 ![]() 22 public static string strConn23 {24 get25 {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对应! 本文出自 “共享经验” 博客,转载请与作者联系! 本文出自 51CTO.COM技术博客 |







}
剑了
博客统计信息
热门文章
最新评论
友情链接