自动获取数据库中的主从关系数据,以下是获取省份及省份对应的城市,代码如下: < asp:repeater ID ="Repeater1" runat ="server" > < ItemTemplate > < span style ="font-weight :bold " > <% #Eval ("pname") %> </ span > < ul > < asp:Repeater ID ="detal" runat ="server" DataSource ='<%#GetCity(Eval("pid").ToString()) % > '> < ItemTemplate > < li > <% #Eval("city_name") %> </ li > </ ItemTemplate > </ asp:Repeater > </ ul > </ ItemTemplate > </ asp:repeater > 重点:DataSource ='<%#Getawd(Eval("pid").ToString()) %>' 调用GetCity方法获取子类 protected void Page_Load( object sender, EventArgs e) { if (!Page.IsPostBack) BindGrid(); } // 获取大类的类别 protected void BindGrid() { string cmdText = "select pid, pname from pro"; DataTable dt = vc.GetDataTable(cmdText ); Repeater1.DataSource = dt; Repeater1.DataBind(); } // 获取小类内容 protected DataTable GetCity( string id) { string cmdText = "select city_name from city where promo_id = " + id + ""; DataTable dt = vc.GetDataTable(cmdText); return dt; } 实现效果如下: 方法二:在第一个Repeater的ItemDataBound事件中绑定第二个Repeater,HTML代码中第一个Repeater不赋予 DataSource protected void repeatTitle_ItemDataBound( object sender, RepeaterItemEventArgs e) { DataRowView dr = (DataRowView)e.Item.DataItem; DataTable mydt = GetCity(dr[0].ToString()); if (mydt.Rows.Count > 0) { Repeater myRepeat = (Repeater)e.Item.FindControl("repeatCont"); myRepeat.DataSource = mydt; myRepeat.DataBind(); mydt.Dispose(); } else { e.Item.Visible = false; //没有数据时不显示 } } 本文转自chy710博客园博客,原文链接:http://www.cnblogs.com/chy710/archive/2007/05/14/745590.html ,如需转载请自行联系原作者