数据库DB 表 a :
深度 父节点 节点名
1 Start A
1 Start B
2 A 01
2 A 02
2 B 03
3 01 a1
3 01 a2
3 02 a3
3 03 b1要求,查询结果显示如下:Start
|- A
|- 01
|- a1
|- a2
|- 02
|- a3
|- B
|- 03
|-b1
语言:C# 昨晚上通宵了,脑子发木,不转轴了,各位兄弟帮忙指点啊,谢了。
深度 父节点 节点名
1 Start A
1 Start B
2 A 01
2 A 02
2 B 03
3 01 a1
3 01 a2
3 02 a3
3 03 b1要求,查询结果显示如下:Start
|- A
|- 01
|- a1
|- a2
|- 02
|- a3
|- B
|- 03
|-b1
语言:C# 昨晚上通宵了,脑子发木,不转轴了,各位兄弟帮忙指点啊,谢了。
解决方案 »
- 请教网站地图的问题
- css 中鼠标经过背景改变问题
- TortoiseSVN 的小问题,头痛,哥哥们请帮帮忙!这是为什么呢???
- 【求助】让动态图片连续滚动怎么做
- 请教一个菜问题,关于数据库连接的!
- 如何对两个日期(天数)相减?
- 关于static的一点疑惑!
- 谁能解释一下为什么嵌套form标签会导致submit没有反应?
- Gridview + objectdatashource 分页问题
- 如何dropdownlist下拉框弹出新窗口,网址已经邦定到DataValueField="url" DataTextField="name" .在线等待
- 外网访问访问本地机器的网页
- 求asp.net2.0揭秘源代码
发一个我自己写的给你参考一下 Model using System;
namespace WZMM.Model
{
/// <summary>
/// 实体类ClassModel 。(属性说明自动提取数据库字段的描述信息)
/// </summary>
public class ClassModel
{
public ClassModel()
{ }
#region Model
private int _id;
private int _classid;
private string _name;
private bool _isdelete;
private bool _state;
public int id
{
set { _id = value; }
get { return _id; }
}
public int classid
{
set { _classid = value; }
get { return _classid; }
} public string name
{
set { _name = value; }
get { return _name; }
} public bool isdelete
{
set { _isdelete = value; }
get { return _isdelete; }
} public bool state
{
set {
_state = value;
}
get { return _state; }
}
#endregion Model
}
} public static List<ClassModel> Select()
{
DataTable dt = GetTable();
List<ClassModel> list = new List<ClassModel>();
ClassModel model = new ClassModel();
model.id = 0;
model.name = "===请选择类别===";
list.Add(model);
OrderSelect(dt, list, 0, "|-");
dt.Clear();
return list;
} static DataTable GetTable()
{
DataTable dt = new DataTable();
DataSet ds = new DataSet();
Database.RunProc("CLASS_Select", out ds);
dt = ds.Tables[0];
return dt;
} static void OrderSelect(DataTable dt, List<ClassModel> list, int classid, string strTop)
{
DataRow[] rows = dt.Select("classid=" + classid);
for (int i = 0; i < rows.Length; i++)
{
ClassModel model = new ClassModel();
model.id = int.Parse(rows[i]["id"].ToString());
model.name = strTop + rows[i]["name"].ToString();
list.Add(model);
string str = " " + strTop;
int id = int.Parse(rows[i]["id"].ToString());
OrderSelect(dt, list, id, str);
}
}
表:
CREATE TABLE [dbo].[classes] (
[id] [int] IDENTITY (1, 1) NOT NULL 0,
[classid] [int] NOT NULL 0,
[name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL '',
[isdelete] [bit] NOT NULL 0,
[state] [bit] NOT NULL 1
) ON [PRIMARY]
GO
不是xml。能输出到页面就行,怎么显示是后事。
会就帮帮忙呗..正在研究2楼的……
代码如下private void LoadNodes(TreeNode parentNodes, CMenuItem root)
{
//CMenuItemCollection 节点实体集合
CMenuItemCollection cmc = root.SubMenuItems;//以root节点为父节点的节点集合
foreach (CMenuItem menu in cmc)
{
TreeNode tn = new TreeNode();
tn.Value = menu.ID.ToString();
tn.PopulateOnDemand = true;
parentNodes.ChildNodes.Add(tn);
}
} protected void tvMenu_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{
CMenuItem currentItem = new CMenuItem(long.Parse(e.Node.Value));
LoadNodes(e.Node, currentItem);
}
前台页面
asp:TreeView ID="tvMenu" runat="server" CollapseImageToolTip="关闭 {0}" EnableClientScript="False"
ImageSet="XPFileExplorer" OnTreeNodePopulate="tvMenu_TreeNodePopulate" PopulateNodesFromClient="False"
ShowLines="True">
<Nodes>
<asp:TreeNode Text="statr" Value="1" PopulateOnDemand="True"></asp:TreeNode>
</Nodes>
</asp:TreeView>
使用treeView 用递归生成.
干脆写一个存在那里,让大家分享.
http://blog.csdn.net/lonelygames/archive/2008/07/18/2671083.aspx