•娱乐
  ◦明星
  ◦图片
  ◦英超
  ◦国际 
•体育
   ◦明星
  ◦图片
  ◦英超
  ◦国际 
 
        <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
            <ItemTemplate>
                <ul>
                    <li>
                        <%#Eval("Name") %>
                    </li>
                    <li>
                        <ul>
                            <asp:Repeater ID="Repeater2" runat="server" DataSourceID="SqlDataSource2">
                                <ItemTemplate>
                                    <li>
                                        <%#Eval("Name") %>
                                    </li>
                                </ItemTemplate>
                            </asp:Repeater>
                        </ul>
                    </li>
                </ul>
            </ItemTemplate>
        </asp:Repeater>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:testConnectionString %>"
            SelectCommand="SELECT [DepartmentId], [Name] FROM [Department]">
</asp:SqlDataSource>
        <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:testConnectionString %>"
            SelectCommand="SELECT [CategoryId], [Name], [DepartmentId] FROM [Category]">
        </asp:SqlDataSource>
应该是娱乐下面为明星和图片,体育下面为英超和国际,
小弟我实在不知道该怎么写,求高手贴源代码
不要泛泛的和我说用递归什么for循环,如果我会写,我就不会问了

解决方案 »

  1.   

     protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                DataSet dataTable = Common.SqlDAO.ExecuteDataset("select *from myTree where parentId=0",null);
                for (int i = 0; i < dataTable.Tables[0].Rows.Count; i++)
                {
                    TreeNode tn = new TreeNode();
                    tn.Text = dataTable.Tables[0].Rows[i]["text"].ToString();
                    tn.Value = dataTable.Tables[0].Rows[i]["Id"].ToString();
                    tn.NavigateUrl = dataTable.Tables[0].Rows[i]["TargetUrl"].ToString();
                    tn.Target = "_url";
                    TreeView1.Nodes.Add(tn);
                    this.CreateNodes(tn);
                }
            }
        }
        protected void CreateNodes(TreeNode node)
        {
            string sql = "select *from myTree where parentId=@parentId";
            System.Data.SqlClient.SqlParameter[] p = new System.Data.SqlClient.SqlParameter[1];
            p[0] = new  System.Data.SqlClient.SqlParameter("@parentId",node.Value);
            DataSet dsetChildNodes = Common.SqlDAO.ExecuteDataset(sql, p);
            for (int i = 0; i < dsetChildNodes.Tables[0].Rows.Count; i++)
            {
                TreeNode childNode = new TreeNode();
                childNode.Text = dsetChildNodes.Tables[0].Rows[i]["text"].ToString();
                childNode.Value = dsetChildNodes.Tables[0].Rows[i]["id"].ToString();
                childNode.Target = dsetChildNodes.Tables[0].Rows[i]["TargetUrl"].ToString();
                childNode.NavigateUrl = dsetChildNodes.Tables[0].Rows[i]["TargetUrl"].ToString();
                node.ChildNodes.Add(childNode);
                this.CreateNodes(childNode);
            }
        }