自动获取数据库中的主从关系数据,以下是获取省份及省份对应的城市,代码如下:
<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; }
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; //没有数据时不显示 } }