常用的在数据库中建立无限级树形菜单

经常在项目中遇到建立无限级树形菜单展示的效果,这里简单地做了一个,基本后台代码如下:

  1. privateDataTableGetTable(inttopid)
  2. {
  3. DataTabledt=null;
  4. try
  5. {
  6. stringconstr="server=.;database=tqnpc;uid=sa;pwd=sa";
  7. stringselstr="select*fromRW_工作关系wheremain_id="+topid+"";
  8. SqlConnectioncon=newSqlConnection(constr);
  9. SqlDataAdapterda=newSqlDataAdapter(selstr,con);
  10. dt=newDataTable();
  11. da.Fill(dt);
  12. }
  13. catch(Exceptionex)
  14. {
  15. Response.Write(ex.Message);
  16. }
  17. returndt;
  18. }
  19. protectedvoidMakeTree()
  20. {
  21. DataTabledt=GetTable(0);
  22. try
  23. {
  24. if(dt!=null)
  25. {
  26. for(inti=0;i
  27. {
  28. TreeNodetn=newTreeNode();
  29. tn.Text=dt.Rows[i]["MAIN_ID"].ToString();
  30. tn.Value=dt.Rows[i]["REF_ID"].ToString();
  31. tn.SelectAction=TreeNodeSelectAction.Select;
  32. TreeView1.Nodes.Add(tn);
  33. AddTreeNodes(int.Parse(dt.Rows[i]["REF_ID"].ToString()),int.Parse(dt.Rows[i]["REF_ID"].ToString()),tn);
  34. }
  35. }
  36. }
  37. catch(Exceptionex)
  38. {
  39. Response.Write(ex.Message);
  40. }
  41. }

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

常用的在数据库中建立无限级树形菜单_第1张图片

你可能感兴趣的:(数据结构,工作)