使用repeater控件显示列表替代treeview

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Configuration;

namespace Blog.Blog
{
    public partial class repeatertest : System.Web.UI.Page
    { 
        protected void Page_Load(object sender, EventArgs e)
        {
            showmenu();
        }

        protected void showmenu() 
        {
            SqlDataAdapter cmd = new SqlDataAdapter("select * from content;select * from content", new SqlConnection(ConfigurationManager.ConnectionStrings["testConnectionString"].ConnectionString));
            DataSet ds = new DataSet();
            cmd.Fill(ds);
            ds.Relations.Add(new DataRelation("stu",ds.Tables[0].Columns["_id"],ds.Tables[1].Columns["_parent_id"]));
            Repeater1.DataSource = ds;
            Repeater1.DataBind();
        }

        protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            DataRowView dv = e.Item.DataItem as DataRowView;
            if (dv != null)
            {
                Repeater repSubMenu = e.Item.FindControl("ss") as Repeater;
                if (repSubMenu != null)
                {
                    repSubMenu.DataSource = dv.CreateChildView("stu");
                    repSubMenu.DataBind();
                }
            }
        }
    }
}

前端显示

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="repeatertest.aspx.cs" Inherits="Blog.Blog.repeatertest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Repeater ID="Repeater1" runat="server" 
            onitemdatabound="Repeater1_ItemDataBound">
           
            <ItemTemplate>
            <a href="#"><%#DataBinder.Eval(Container.DataItem, "_id")%></a>
             <asp:Repeater runat="server" ID="ss">
             <ItemTemplate>
             <div style="margin-left:15px;"><a href="#"><%#DataBinder.Eval(Container.DataItem, "_parent_id")%></a><br /></div>
             </ItemTemplate>
             </asp:Repeater>
            </ItemTemplate>
        </asp:Repeater>
    </div>
    </form>
</body>
</html>
View Code
原文地址:https://www.cnblogs.com/Hackerman/p/4081222.html