第一个表 
brand 
字段: brandname ,brandid第二个表
category
字段: categoryname,categoryid,brandid,brandname现在循环显示分类:大分类一
     小分类11
     小分类12
     小分类13
大分类二 
     小分类21
     小分类22
.......
.....怎么写呢?

解决方案 »

  1.   

    repeater嵌套 ItemDataBound下绑定
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                //找到Repeater2
                Repeater Repeater2 = (Repeater)e.Item.FindControl("Repeater2");
                DataRowView row = (DataRowView)e.Item.DataItem;
                Repeater2.DataSource = sort.Getsort_class(Convert.ToInt32(row["第一个表的字段"]));
                Repeater2.DataBind();
            }
      

  2.   

    还是不要嵌套了吧。。循环输出HTML标签就好了。。for(int i=0;i<dt)
      

  3.   

    已经搞定
    <asp:Repeater ID="LV1" runat="server">
                <ItemTemplate>
                   <h3> <%#Eval("brandname") %></h3>
                    
                    <asp:Repeater ID="LV2" runat="server" DataSource='<%# LV2source(Eval("brandid")) %>'>                    <ItemTemplate>
                            <a href="#"><%#Eval("categoryname") %></a>
                        </ItemTemplate>
                        
                    </asp:Repeater>
                </ItemTemplate>
            
            </asp:Repeater>
    --------------------------private string _connstring = WebConfigurationManager.ConnectionStrings["proconnectionstring"].ConnectionString;    protected void Page_Load(object sender, EventArgs e)
        {
           if(!Page.IsPostBack)
           {
                SqlConnection con=new SqlConnection(_connstring);
               SqlCommand cmd=new SqlCommand();
               cmd.Connection=con;
               cmd.CommandText="select * from probrand";           SqlDataAdapter sda = new SqlDataAdapter(cmd);
               DataSet dst = new DataSet();
               using (sda)
               {
                   con.Open();
                   sda.Fill(dst);
               }
                         LV1.DataSource=dst;
               LV1.DataBind();
                }
           
         
           
        }
        
        public DataSet LV2source(object lv1id)
        {
            SqlConnection con=new SqlConnection(_connstring);
            SqlCommand cmd=new SqlCommand();
            cmd.Connection=con;
            cmd.CommandText="select * from procategory where brandid=@brandid";
            cmd.Parameters.AddWithValue("@brandid",lv1id);        SqlDataAdapter sda=new SqlDataAdapter(cmd);
            DataSet dst=new DataSet();
            using (sda)
            {
                con.Open();
                sda.Fill(dst);
            
            }
            return dst;
        
        }
      

  4.   

    呵呵 简单点儿的
    前台
     <%= strmenu %>
    后台
     public static string strmenu = string.Empty;
            protected void Page_Load(object sender, EventArgs e)
            {            //mock下数据brand  category
                DataTable dtOne = new DataTable();
                dtOne.Columns.Add("brandid", typeof(string));
                dtOne.Columns.Add("brandname", typeof(string));            DataTable dtTwo = new DataTable();
                dtTwo.Columns.Add("brandid", typeof(string));
                dtTwo.Columns.Add("brandname", typeof(string));
                dtTwo.Columns.Add("categoryid", typeof(string));
                dtTwo.Columns.Add("categoryname", typeof(string));            //添加数据            for (int i = 1; i < 10; i++)
                {
                    DataRow dr = dtOne.NewRow();
                    dr[0] = i.ToString();
                    dr[1] = "大分类" + i;
                    dtOne.Rows.Add(dr);
                }
                //添加数据            for (int j = 1; j < 10; j++)
                {
                    DataRow dr1 = dtTwo.NewRow();
                    dr1[0] = j.ToString();
                    dr1[1] = "大分类" + j;
                    dr1[2] = "a" + j;
                    dr1[3] = "小分类" + j.ToString() + j.ToString();
                    dtTwo.Rows.Add(dr1);
                }
               
                foreach (DataRow d1 in dtOne.Rows)
                {
                    strmenu += d1["brandname"].ToString() + "<br/>";
                    DataRow[] drsChild = dtTwo.Select("brandid=" + d1["brandid"] + "");
                    DataTable ChildDataTable = drsChild[0].Table.Clone();
                    foreach (DataRow drs in drsChild)
                    {
                        ChildDataTable.ImportRow(drs);
                    }
                    if (ChildDataTable.Rows.Count != 0)
                    {
                        for (int k = 0; k <= ChildDataTable.Rows.Count - 1; k++)
                        {
                            strmenu += "&nbsp;" + ChildDataTable.Rows[k]["categoryname"].ToString() + "<br/>";
                        }
                    }
                }
           }
    跑一下.