表结构:
前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="RightDGExercise.WebForm1" %> <!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:TreeView ID="TreeView1" runat="server"> </asp:TreeView> </div> </form> </body> </html>
后台代码:
public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string sql = "SELECT * FROM Menus ORDER BY Sort"; DataSet ds = MySqlHelper.ExecuteDataset(MySqlHelper.ConnectionString, System.Data.CommandType.Text, sql); if (ds.Tables != null && ds.Tables.Count > 0) { TreeNode nodeOne = new TreeNode("",""); TreeView1.Nodes.Add(nodeOne); FillTree(nodeOne,"0", ds.Tables[0]); } } } // 递归算法 private void FillTree(TreeNode treeNode,string ParentId,DataTable dt) { DataRow[] drs = dt.Select(" ParentID='"+ParentId+"'"); if (drs == null || drs.Length < 0) { return; } else { for (int i = 0; i < drs.Length; i++) { DataRow dr = drs[i]; TreeNode nodeName = new TreeNode(dr["Name"].ToString(), dr["ID"].ToString()); treeNode.ChildNodes.Add(nodeName); FillTree(nodeName, dr["ID"].ToString(), dt); } } } }