[原创]asp.net 2.0下的自定义树(myTreeView)
自己在项目里用的类,大家看一下~~
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
using System.Data;
5
using System.Web.UI.WebControls;
6![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
/**//*-----------------------------------------------------------
8
*
9
* Copyright (C) 2009 版权所有
10
*
11
* 文件名:myTreeView.cs
12
*
13
* myTreeView自定义树
14
*
15
* 主要功能:
16
* 压缩、解压
17
*
18
*
19
* 创建标识:进哥
20
* 作者:进哥
21
* 来源:http://www.cnblogs.com/pcsky/archive/2009/10/15/1584124.html
22
*
23
-----------------------------------------------------------*/
24![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
25
namespace LTP.Common
26![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
27![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
28
/// myTreeView 的摘要说明。
29
/// </summary>
30
public class myTreeView
31![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
32
private string _IDField;
33
private string _NameField;
34
private string _ParentField;
35
private string _RootID;
36
private string _NavigateUrl;
37
private string _NavigateArg;
38
private DataSet _Dst;
39
private string _Target;
40
private string _PageNameField;
41
private int _ExpandLevel;
42![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
43![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
44
/// TreeView自定义基类
45
/// </summary>
46
/// <param name="IDField">ID字段</param>
47
/// <param name="NameField">Name字段</param>
48
/// <param name="ParentField">父级字段</param>
49
/// <param name="RootID">根节点号</param>
50
/// <param name="Dst">DataSet</param>
51
public myTreeView(string IDField, string NameField, string ParentField, string RootID, ref DataSet Dst)
52![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
53
_IDField = IDField;
54
_NameField = NameField;
55
_ParentField = ParentField;
56
_RootID = RootID;
57
_Dst = Dst;
58
_Target = "mainFrame";
59
_NavigateArg = "";
60
_ExpandLevel = 1;
61
}
62![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
63
public myTreeView()
64![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
65
}
66![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
67![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
参数#region 参数
68![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
69
/// ID字段
70
/// </summary>
71
public string IDField
72![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
73![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ _IDField = value; }
74![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return _IDField; }
75
}
76![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
77![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
78
/// Name字段
79
/// </summary>
80
public string NameField
81![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
82![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ _NameField = value; }
83![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return _NameField; }
84
}
85![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
86![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
87
/// 父级字段
88
/// </summary>
89
public string ParentField
90![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
91![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ _ParentField = value; }
92![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return _ParentField; }
93
}
94![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
95![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
96
/// 根节点号
97
/// </summary>
98
public string RootID
99![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
100![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ _RootID = value; }
101![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return _RootID; }
102
}
103![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
104![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
105
/// 超链接
106
/// </summary>
107
public string NavigateUrl
108![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
109![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ _NavigateUrl = value; }
110![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return _NavigateUrl; }
111
}
112![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
113![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
114
/// 超链接参数字段
115
/// </summary>
116
public string NavigateArg
117![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
118![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ _NavigateArg = value; }
119![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return _NavigateArg; }
120
}
121![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
122![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
123
/// 页面名的字段
124
/// </summary>
125
public string PageNameField
126![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
127![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ _PageNameField = value; }
128![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return _PageNameField; }
129
}
130![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
131![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
132![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
133
/// 超链接目标
134
/// </summary>
135
public int ExpandLevel
136![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
137![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ _ExpandLevel = value; }
138![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return _ExpandLevel; }
139
}
140![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
141![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
142![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
143
/// 超链接目标
144
/// </summary>
145
public string Target
146![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
147![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ _Target = value; }
148![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return _Target; }
149
}
150![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
151![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
152
/// 超链接目标
153
/// </summary>
154
public DataSet Dst
155![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
156![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ _Dst = value; }
157![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return _Dst; }
158
}
159
#endregion
160![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
161
public void BindTree(System.Web.UI.WebControls.TreeView _myTree)
162![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
163
_myTree.Nodes.Clear();
164
_myTree.MaxDataBindDepth = ExpandLevel;
165![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
166
InitTree(_myTree.Nodes, RootID);
167
}
168![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
169
private void InitTree(TreeNodeCollection _Nds, string _parentID)
170![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
171
TreeNode tmpNd;
172
DataRow[] rows = Dst.Tables[0].Select(ParentField + "=" + _parentID);
173![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
174
foreach (DataRow row in rows)
175![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
176
tmpNd = new TreeNode();
177
tmpNd.Value = row[IDField].ToString();
178
tmpNd.Text = row[NameField].ToString();
179![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
180
if (PageNameField != "" && PageNameField != null)
181![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
182
if (row[PageNameField].ToString() != "")
183
tmpNd.NavigateUrl = ReturnPlus.GetAppPath() + row[PageNameField].ToString();
184![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
185
if (NavigateArg != "")
186![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
187
if (row[NavigateArg].ToString() != null)
188
tmpNd.NavigateUrl = String.Format(row[PageNameField].ToString(), row[NavigateArg]);
189
}
190
}
191
else
192![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
193
tmpNd.NavigateUrl = String.Format(NavigateUrl, row[NavigateArg]);
194
}
195![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
196
if (tmpNd.NavigateUrl == "" || tmpNd.NavigateUrl == null)
197![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
198
//tmpNd.SelectAction = TreeNodeSelectAction.SelectExpand;
199
//tmpNd.NavigateUrl = "javascript:TreeView_ToggleNode(myTree_Data," + tmpNd. +",myTreen3,'l',myTreen3Nodes)"
200
//tmpNd.NavigateUrl = "#";
201
}
202
else
203![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
204
tmpNd.Target = Target;
205
}
206![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
207
_Nds.Add(tmpNd);
208
InitTree(tmpNd.ChildNodes, tmpNd.Value);
209
}
210
}
211
}
212
}
213![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
原文地址:https://www.cnblogs.com/pcsky/p/1584124.html