您的位置:首页 > 编程语言 > ASP

ASP.NET 读数据库绑定到 TreeView 递归方式

2011-08-27 23:34 387 查看


创建表及插入模拟数据:

CREATE
TABLE
[sysMenuTree](
[NoteId][
decimal
](18,0)
NOT
NULL
,
[ParentId][
decimal
](18,0)
NULL
,
[sText][nvarchar](50)
NULL
,
[sValue][nvarchar](50)
NULL
,
[sURL][nvarchar](50)
NULL
,
[sTarget][nvarchar](50)
NULL
,
[Chger][nvarchar](50)
NULL
,
[ChgTime][nvarchar](50)
NULL
insert
into
sysMenuTree
values
(3,0,N
'目錄'
,N
'目錄'
,
''
,
''
,
''
,
''
)
insert
into
sysMenuTree
values
(4,0,N
'目錄'
,N
'目錄'
,
''
,
''
,
''
,
''
)
insert
into
sysMenuTree
values
(5,0,N
'目錄'
,N
'目錄'
,
''
,
''
,
''
,
''
)
insert
into
sysMenuTree
values
(6,3,N
'項目.1'
,N
'項目.1'
,
''
,
''
,
''
,
''
)
insert
into
sysMenuTree
values
(7,3,N
'項目.2'
,N
'項目.2'
,
''
,
''
,
''
,
''
)
insert
into
sysMenuTree
values
(8,4,N
'項目.1'
,N
'項目.1'
,
''
,
''
,
''
,
''
)
insert
into
sysMenuTree
values
(9,4,N
'項目.2'
,N
'項目.2'
,
''
,
''
,
''
,
''
)
insert
into
sysMenuTree
values
(10,4,N
'項目.3'
,N
'項目.3'
,
''
,
''
,
''
,
''
)
insert
into
sysMenuTree
values
(11,5,N
'項目.1'
,N
'項目.1'
,
''
,
''
,
''
,
''
)
insert
into
sysMenuTree
values
(12,5,N
'項目.2'
,N
'項目.2'
,
''
,
''
,
''
,
''
)
在ASP.NET中读取数据绑定到TreeView实现代码:

<%@PageLanguage=
"C#"

AutoEventWireup=
"true"

CodeFile=
"Default.aspx.cs"

Inherits=
"_Default"

%>
<!DOCTYPEhtmlPUBLIC
"-//W3C//DTDXHTML1.0Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<htmlxmlns=
"http://www.w3.org/1999/xhtml"
>
<headrunat=
"server"
>
<title></title>
</head>
<body>
<formid=
"form1"

runat=
"server"
>
<div>
<asp:TreeViewID=
"treeMenu"

runat=
"server"
>
</asp:TreeView>
</div>
</form>
</body>
</html>
using

System;
using

System.Web.UI.WebControls;
using

System.Data;
using

System.Data.SqlClient;
public
partial
class

_Default:System.Web.UI.Page
{
private

readonly
string

ConnString=
@"server=.\MSSQLSERVER2008;database=chart;uid=sa;pwd=123456"
;
private

DataTabledt=
null
;
protected

void
Page_Load(
object

sender,EventArgse)
{

if
(!IsPostBack)
{
dt=
new
DataTable();
GetMenuToDataTable(
"select*fromsysMenuTree"
,dt);
BindTree(dt,
null
,
"0"
);
}
}

private

void
BindTree(DataTabledtSource,TreeNodeparentNode,
string

parentID)
{

DataRow[]rows=dtSource.Select(
string
.Format(
"ParentID={0}"
,parentID));
foreach
(DataRowrow
in
rows)

{
TreeNodenode=
new
TreeNode();
node.Text=row[
"sText"
].ToString();
node.Value=row[
"sValue"
].ToString();
BindTree(dtSource,node,row[
"NoteId"
].ToString());
if
(parentNode==
null
)

{
treeMenu.Nodes.Add(node);
}
else
{
parentNode.ChildNodes.Add(node);
}
}
}

private

DataTableGetMenuToDataTable(
string

query,DataTabledt)
{

using
(SqlConnectionconn=
new
SqlConnection(ConnString))
{
SqlCommandcmd=
new
SqlCommand(query,conn);
SqlDataAdapterada=
new
SqlDataAdapter(cmd);
ada.Fill(dt);
}
return

dt;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: