数据表结构:表1:
hid   Name
---------
 1    新闻
 2    动态表2:
cid   hid   Name
----------------
 1     1    国内新闻
 2     1    国际新闻
 3     1    本地新闻
 4     2    最新动态
 5     2    公告如何利用Repeater显示出:<ul>
    <li>新闻
             <ul>
                   <li>国内新闻</li>
                   <li>国际新闻</li>
                   <li>本地新闻</li>
              </ul>
     </li>     <li>动态
             <ul>
                   <li>最新动态</li>
                   <li>公告</li>
             </ul>
     </li></ul>
请大家讲详细点~~~谢谢~~~

解决方案 »

  1.   

    repeater 嵌套 repeater
      

  2.   

    直接嵌套就显示成:
    <ul> 
        <li>新闻 
                <ul> 
                      <li>国内新闻 </li> 
                      <li>国际新闻 </li> 
                      <li>本地新闻 </li> 
                      <li>最新动态 </li> 
                      <li>公告 </li> 
                  </ul> 
        </li>     <li>动态 
                <ul> 
                      <li>国内新闻 </li> 
                      <li>国际新闻 </li> 
                      <li>本地新闻 </li> 
                      <li>最新动态 </li> 
                      <li>公告 </li> 
                </ul> 
        </li> </ul>
    这样的啦!!!!!
      

  3.   

    建两个Repeater!!
    第一个Repeater对应的select语句是:
    select 表2.Name from 表1 join 表2 on 表1.hid=表2.hid where 表1.hid=1第二个Repeater对应的select语句是:
    select 表2.Name from 表1 join 表2 on 表1.hid=表2.hid where 表1.hid=2
      

  4.   

    Repeater嵌套了,楼主没处理好,这个网上好多,如:http://www.netbei.com/Article/aspx/aspx2/200505/3755.html
      

  5.   

    前台:注意<div style="display: none"><%# Eval("hid")%></div>这句不要去掉<asp:Repeater ID="repeaterMain" runat="server" OnItemDataBound="repeaterMain_ItemDataBound">
                <HeaderTemplate>
                    <ul>
                </HeaderTemplate>
                <ItemTemplate>
                    <li>
                        <div style="display: none">
                            <%# Eval("hid")%>
                        </div>
                        <%# Eval("name")%>
                        <asp:Repeater ID="repeaterSub" runat="server">
                            <HeaderTemplate>
                                <ul>
                            </HeaderTemplate>
                            <ItemTemplate>
                                <li>
                                    <%# Eval("name")%>
                                </li>
                            </ItemTemplate>
                            <FooterTemplate>
                                </ul></FooterTemplate>
                        </asp:Repeater>
                    </li>
                </ItemTemplate>
                <FooterTemplate>
                    </ul></FooterTemplate>
            </asp:Repeater>
    后台: protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindMain();
            }
        }    private void BindMain()
        {
            repeaterMain.DataSource = dt1();
            repeaterMain.DataBind();
        }
        protected void repeaterMain_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                string hid = ((DataRowView)e.Item.DataItem).Row["hid"].ToString();
                Repeater repeaterSub = (Repeater)e.Item.FindControl("repeaterSub");
                if (repeaterSub != null)
                {
                    DataTable dt = dt2();
                    DataView dv = new DataView(dt);
                    dv.RowFilter = "hid =" + hid;
                    repeaterSub.DataSource = dv;
                    repeaterSub.DataBind();
                }
            }
        }     DataTable dt1() //测试数据
        {
            DataTable dt = new DataTable();
            DataRow dr;
            dt.Columns.Add(new DataColumn("hid", typeof(Int32)));
            dt.Columns.Add(new DataColumn("name", typeof(String)));
            
            dr = dt.NewRow();
            dr[0] = 1;
            dr[1] = "新闻";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr[0] = 2;
            dr[1] = "动态";
            dt.Rows.Add(dr)
            return dt;
        }
        DataTable dt2() //测试数据
        {
            DataTable dt = new DataTable();
            DataRow dr;
            dt.Columns.Add(new DataColumn("cid", typeof(Int32)));
            dt.Columns.Add(new DataColumn("hid", typeof(Int32)));
            dt.Columns.Add(new DataColumn("name", typeof(String)));
            
            dr = dt.NewRow();
            dr[0] = 1;
            dr[1] = 1;
            dr[2] = "国内新闻";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr[0] = 2;
            dr[1] = 1;
            dr[2] = "国际新闻";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr[0] = 3;
            dr[1] = 1;
            dr[2] = "本地新闻";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr[0] = 4;
            dr[1] = 2;
            dr[2] = "最新动态";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr[0] = 5;
            dr[1] = 2;
            dr[2] = "公告";
            dt.Rows.Add(dr);
            return dt;
        }运行结果: <ul>
                
                    <li>
                        <div style="display: none">
                            1
                        </div>
                        新闻
                        
                                <ul>
                            
                                <li>
                                    国内新闻
                                </li>
                            
                                <li>
                                    国际新闻
                                </li>
                            
                                <li>
                                    本地新闻
                                </li>
                            
                                </ul>
                    </li>
                
                    <li>
                        <div style="display: none">
                            2
                        </div>
                        动态
                        
                                <ul>
                            
                                <li>
                                    最新动态
                                </li>
                            
                                <li>
                                    公告
                                </li>
                            
                                </ul>
                    </li>
                
                    </ul>
      

  6.   

    实际连接数据库写时: private void BindMain()
        {
            repeaterMain.DataSource = dt1();
            repeaterMain.DataBind();
        }---------------------------
    这时select * from tb1  string hid = ((DataRowView)e.Item.DataItem).Row["hid"].ToString();
                Repeater repeaterSub = (Repeater)e.Item.FindControl("repeaterSub");
    if (repeaterSub != null)
                {
                    DataTable dt = dt2();
                    DataView dv = new DataView(dt);
                    dv.RowFilter = "hid =" + hid;
                    repeaterSub.DataSource = dv;
                    repeaterSub.DataBind();
                }
    ---------------------------
    这时select * from tb2 where hid = hid(这个为上面的 string hid =....)
      

  7.   

    两个Repeater嵌套,第一个绑定大类;第二个绑定小类,在第一个的ItemDataBound事件中绑定第二个
      

  8.   

    reapter嵌套参考
    参考