常用的在数据库中建立无限级树形菜单的asp.net代码

复制代码 代码如下:

  private DataTable GetTable(int topid)

  {

  DataTable dt = null;

  try

  {

  string constr = "server=.;database=tqnpc;uid=sa;pwd=sa";

  string selstr = "select * from RW_工作关系 where main_id=" + topid + "";

  SqlConnection con = new SqlConnection(constr);

  SqlDataAdapter da = new SqlDataAdapter(selstr, con);

  dt = new DataTable();

  da.Fill(dt);

  }

  catch (Exception ex)

  {

  Response.Write(ex.Message);

  }

  return dt;

  }

  protected void MakeTree()

  {

  DataTable dt = GetTable(0);

  try

  {

  if (dt != null)

  {

  for (int i = 0; i < dt.Rows.Count; i++)

  {

  TreeNode tn = new TreeNode();

  tn.Text = dt.Rows[i]["MAIN_ID"].ToString();

  tn.Value = dt.Rows[i]["REF_ID"].ToString();

  tn.SelectAction = TreeNodeSelectAction.Select;

  TreeView1.Nodes.Add(tn);

  AddTreeNodes(int.Parse(dt.Rows[i]["REF_ID"].ToString()), int.Parse(dt.Rows[i]["REF_ID"].ToString()), tn);

  }

  }

  }

  catch (Exception ex)

  {

  Response.Write(ex.Message);

  }

  }

  这个方法对数据库的结构也有一定的要求,数据库的设计如下: