[原创]asp.net 2.0下的自定义树(myTreeView)
自己在项目里用的类,大家看一下~~

 Code
Code
1 using System;
using System;
2 using System.Collections.Generic;
using System.Collections.Generic;
3 using System.Text;
using System.Text;
4 using System.Data;
using System.Data;
5 using System.Web.UI.WebControls;
using System.Web.UI.WebControls;
6
7
 /**//*-----------------------------------------------------------
/**//*-----------------------------------------------------------
8 *
 * 
9 * Copyright (C) 2009 版权所有
 * Copyright (C) 2009 版权所有
10 *
 *
11 * 文件名:myTreeView.cs
 * 文件名:myTreeView.cs
12 *
 * 
13 * myTreeView自定义树
 * myTreeView自定义树
14 *
 * 
15 * 主要功能:
 * 主要功能:
16 * 压缩、解压
 * 压缩、解压
17 *
 * 
18 *
 *  
19 * 创建标识:进哥
 * 创建标识:进哥
20 * 作者:进哥
 * 作者:进哥
21 * 来源:http://www.cnblogs.com/pcsky/archive/2009/10/15/1584124.html
 * 来源:http://www.cnblogs.com/pcsky/archive/2009/10/15/1584124.html
22 *
 * 
23 -----------------------------------------------------------*/
-----------------------------------------------------------*/
24
25 namespace LTP.Common
namespace LTP.Common
26

 {
{
27
 /**//// <summary>
    /**//// <summary>
28 /// myTreeView 的摘要说明。
    /// myTreeView 的摘要说明。
29 /// </summary>
    /// </summary>
30 public class myTreeView
    public class myTreeView
31
 
     {
{
32 private string _IDField;
        private string _IDField;
33 private string _NameField;
        private string _NameField;
34 private string _ParentField;
        private string _ParentField;
35 private string _RootID;
        private string _RootID;
36 private string _NavigateUrl;
        private string _NavigateUrl;
37 private string _NavigateArg;
        private string _NavigateArg;
38 private DataSet _Dst;
        private DataSet _Dst;
39 private string _Target;
        private string _Target;
40 private string _PageNameField;
        private string _PageNameField;
41 private int _ExpandLevel;
        private int _ExpandLevel;
42
43
 /**//// <summary>
        /**//// <summary>
44 /// TreeView自定义基类
        /// TreeView自定义基类
45 /// </summary>
        /// </summary>
46 /// <param name="IDField">ID字段</param>
        /// <param name="IDField">ID字段</param>
47 /// <param name="NameField">Name字段</param>
        /// <param name="NameField">Name字段</param>
48 /// <param name="ParentField">父级字段</param>
        /// <param name="ParentField">父级字段</param>
49 /// <param name="RootID">根节点号</param>
        /// <param name="RootID">根节点号</param>
50 /// <param name="Dst">DataSet</param>
        /// <param name="Dst">DataSet</param>
51 public myTreeView(string IDField, string NameField, string ParentField, string RootID, ref DataSet Dst)
        public myTreeView(string IDField, string NameField, string ParentField, string RootID, ref DataSet Dst)
52
 
         {
{
53 _IDField = IDField;
            _IDField = IDField;
54 _NameField = NameField;
            _NameField = NameField;
55 _ParentField = ParentField;
            _ParentField = ParentField;
56 _RootID = RootID;
            _RootID = RootID;
57 _Dst = Dst;
            _Dst = Dst;
58 _Target = "mainFrame";
            _Target = "mainFrame";
59 _NavigateArg = "";
            _NavigateArg = "";
60 _ExpandLevel = 1;
            _ExpandLevel = 1;
61 }
        }
62
63 public myTreeView()
        public myTreeView()
64
 
         {
{
65 }
        }
66
67
 参数#region 参数
        参数#region 参数
68
 /**//// <summary>
        /**//// <summary>
69 /// ID字段
        /// ID字段
70 /// </summary>
        /// </summary>
71 public string IDField
        public string IDField
72
 
         {
{
73
 set
            set  { _IDField = value; }
{ _IDField = value; }
74
 get
            get  { return _IDField; }
{ return _IDField; }
75 }
        }
76
77
 /**//// <summary>
        /**//// <summary>
78 /// Name字段
        /// Name字段
79 /// </summary>
        /// </summary>
80 public string NameField
        public string NameField
81
 
         {
{
82
 set
            set  { _NameField = value; }
{ _NameField = value; }
83
 get
            get  { return _NameField; }
{ return _NameField; }
84 }
        }
85
86
 /**//// <summary>
        /**//// <summary>
87 /// 父级字段
        /// 父级字段
88 /// </summary>
        /// </summary>
89 public string ParentField
        public string ParentField
90
 
         {
{
91
 set
            set  { _ParentField = value; }
{ _ParentField = value; }
92
 get
            get  { return _ParentField; }
{ return _ParentField; }
93 }
        }
94
95
 /**//// <summary>
        /**//// <summary>
96 /// 根节点号
        /// 根节点号
97 /// </summary>
        /// </summary>
98 public string RootID
        public string RootID
99
 
         {
{
100
 set
            set  { _RootID = value; }
{ _RootID = value; }
101
 get
            get  { return _RootID; }
{ return _RootID; }
102 }
        }
103
104
 /**//// <summary>
        /**//// <summary>
105 /// 超链接
        /// 超链接
106 /// </summary>
        /// </summary>
107 public string NavigateUrl
        public string NavigateUrl
108
 
         {
{
109
 set
            set  { _NavigateUrl = value; }
{ _NavigateUrl = value; }
110
 get
            get  { return _NavigateUrl; }
{ return _NavigateUrl; }
111 }
        }
112
113
 /**//// <summary>
        /**//// <summary>
114 /// 超链接参数字段
        /// 超链接参数字段
115 /// </summary>
        /// </summary>
116 public string NavigateArg
        public string NavigateArg
117
 
         {
{
118
 set
            set  { _NavigateArg = value; }
{ _NavigateArg = value; }
119
 get
            get  { return _NavigateArg; }
{ return _NavigateArg; }
120 }
        }
121
122
 /**//// <summary>
        /**//// <summary>
123 /// 页面名的字段
        /// 页面名的字段
124 /// </summary>
        /// </summary>
125 public string PageNameField
        public string PageNameField
126
 
         {
{
127
 set
            set  { _PageNameField = value; }
{ _PageNameField = value; }
128
 get
            get  { return _PageNameField; }
{ return _PageNameField; }
129 }
        }
130
131
132
 /**//// <summary>
        /**//// <summary>
133 /// 超链接目标
        /// 超链接目标
134 /// </summary>
        /// </summary>
135 public int ExpandLevel
        public int ExpandLevel
136
 
         {
{
137
 set
            set  { _ExpandLevel = value; }
{ _ExpandLevel = value; }
138
 get
            get  { return _ExpandLevel; }
{ return _ExpandLevel; }
139 }
        }
140
141
142
 /**//// <summary>
        /**//// <summary>
143 /// 超链接目标
        /// 超链接目标
144 /// </summary>
        /// </summary>
145 public string Target
        public string Target
146
 
         {
{
147
 set
            set  { _Target = value; }
{ _Target = value; }
148
 get
            get  { return _Target; }
{ return _Target; }
149 }
        }
150
151
 /**//// <summary>
        /**//// <summary>
152 /// 超链接目标
        /// 超链接目标
153 /// </summary>
        /// </summary>
154 public DataSet Dst
        public DataSet Dst
155
 
         {
{
156
 set
            set  { _Dst = value; }
{ _Dst = value; }
157
 get
            get  { return _Dst; }
{ return _Dst; }
158 }
        }
159 #endregion
        #endregion
160
161 public void BindTree(System.Web.UI.WebControls.TreeView _myTree)
        public void BindTree(System.Web.UI.WebControls.TreeView _myTree)
162
 
         {
{
163 _myTree.Nodes.Clear();
            _myTree.Nodes.Clear();
164 _myTree.MaxDataBindDepth = ExpandLevel;
            _myTree.MaxDataBindDepth = ExpandLevel;
165
166 InitTree(_myTree.Nodes, RootID);
            InitTree(_myTree.Nodes, RootID);
167 }
        }
168
169 private void InitTree(TreeNodeCollection _Nds, string _parentID)
        private void InitTree(TreeNodeCollection _Nds, string _parentID)
170
 
         {
{
171 TreeNode tmpNd;
            TreeNode tmpNd;
172 DataRow[] rows = Dst.Tables[0].Select(ParentField + "=" + _parentID);
            DataRow[] rows = Dst.Tables[0].Select(ParentField + "=" + _parentID);
173
174 foreach (DataRow row in rows)
            foreach (DataRow row in rows)
175
 
             {
{
176 tmpNd = new TreeNode();
                tmpNd = new TreeNode();
177 tmpNd.Value = row[IDField].ToString();
                tmpNd.Value = row[IDField].ToString();
178 tmpNd.Text = row[NameField].ToString();
                tmpNd.Text = row[NameField].ToString();
179
180 if (PageNameField != "" && PageNameField != null)
                if (PageNameField != "" && PageNameField != null)
181
 
                 {
{
182 if (row[PageNameField].ToString() != "")
                    if (row[PageNameField].ToString() != "")
183 tmpNd.NavigateUrl =  ReturnPlus.GetAppPath() + row[PageNameField].ToString();
                        tmpNd.NavigateUrl =  ReturnPlus.GetAppPath() + row[PageNameField].ToString();
184
185 if (NavigateArg != "")
                    if (NavigateArg != "")
186
 
                     {
{
187 if (row[NavigateArg].ToString() != null)
                        if (row[NavigateArg].ToString() != null)
188 tmpNd.NavigateUrl = String.Format(row[PageNameField].ToString(), row[NavigateArg]);
                            tmpNd.NavigateUrl = String.Format(row[PageNameField].ToString(), row[NavigateArg]);
189 }
                    }
190 }
                }
191 else
                else
192
 
                 {
{
193 tmpNd.NavigateUrl = String.Format(NavigateUrl, row[NavigateArg]);
                    tmpNd.NavigateUrl = String.Format(NavigateUrl, row[NavigateArg]);
194 }
                }
195
196 if (tmpNd.NavigateUrl == "" || tmpNd.NavigateUrl == null)
                if (tmpNd.NavigateUrl == "" || tmpNd.NavigateUrl == null)
197
 
                 {
{
198 //tmpNd.SelectAction = TreeNodeSelectAction.SelectExpand;
                    //tmpNd.SelectAction = TreeNodeSelectAction.SelectExpand;                
199 //tmpNd.NavigateUrl = "javascript:TreeView_ToggleNode(myTree_Data," + tmpNd. +",myTreen3,'l',myTreen3Nodes)"
                    //tmpNd.NavigateUrl = "javascript:TreeView_ToggleNode(myTree_Data," + tmpNd. +",myTreen3,'l',myTreen3Nodes)"
200 //tmpNd.NavigateUrl = "#";
                    //tmpNd.NavigateUrl = "#";
201 }
                }
202 else
                else
203
 
                 {
{
204 tmpNd.Target = Target;
                    tmpNd.Target = Target;
205 }
                }
206
207 _Nds.Add(tmpNd);
                _Nds.Add(tmpNd);
208 InitTree(tmpNd.ChildNodes, tmpNd.Value);
                InitTree(tmpNd.ChildNodes, tmpNd.Value);
209 }
            }
210 }
        }
211 }
    }
212 }
}
213 

 Code
Code1
 using System;
using System;2
 using System.Collections.Generic;
using System.Collections.Generic;3
 using System.Text;
using System.Text;4
 using System.Data;
using System.Data;5
 using System.Web.UI.WebControls;
using System.Web.UI.WebControls;6

7

 /**//*-----------------------------------------------------------
/**//*-----------------------------------------------------------8
 *
 * 9
 * Copyright (C) 2009 版权所有
 * Copyright (C) 2009 版权所有10
 *
 *11
 * 文件名:myTreeView.cs
 * 文件名:myTreeView.cs12
 *
 * 13
 * myTreeView自定义树
 * myTreeView自定义树14
 *
 * 15
 * 主要功能:
 * 主要功能:16
 * 压缩、解压
 * 压缩、解压17
 *
 * 18
 *
 *  19
 * 创建标识:进哥
 * 创建标识:进哥20
 * 作者:进哥
 * 作者:进哥21
 * 来源:http://www.cnblogs.com/pcsky/archive/2009/10/15/1584124.html
 * 来源:http://www.cnblogs.com/pcsky/archive/2009/10/15/1584124.html22
 *
 * 23
 -----------------------------------------------------------*/
-----------------------------------------------------------*/24

25
 namespace LTP.Common
namespace LTP.Common26


 {
{27

 /**//// <summary>
    /**//// <summary>28
 /// myTreeView 的摘要说明。
    /// myTreeView 的摘要说明。29
 /// </summary>
    /// </summary>30
 public class myTreeView
    public class myTreeView31

 
     {
{32
 private string _IDField;
        private string _IDField;33
 private string _NameField;
        private string _NameField;34
 private string _ParentField;
        private string _ParentField;35
 private string _RootID;
        private string _RootID;36
 private string _NavigateUrl;
        private string _NavigateUrl;37
 private string _NavigateArg;
        private string _NavigateArg;38
 private DataSet _Dst;
        private DataSet _Dst;39
 private string _Target;
        private string _Target;40
 private string _PageNameField;
        private string _PageNameField;41
 private int _ExpandLevel;
        private int _ExpandLevel;42

43

 /**//// <summary>
        /**//// <summary>44
 /// TreeView自定义基类
        /// TreeView自定义基类45
 /// </summary>
        /// </summary>46
 /// <param name="IDField">ID字段</param>
        /// <param name="IDField">ID字段</param>47
 /// <param name="NameField">Name字段</param>
        /// <param name="NameField">Name字段</param>48
 /// <param name="ParentField">父级字段</param>
        /// <param name="ParentField">父级字段</param>49
 /// <param name="RootID">根节点号</param>
        /// <param name="RootID">根节点号</param>50
 /// <param name="Dst">DataSet</param>
        /// <param name="Dst">DataSet</param>51
 public myTreeView(string IDField, string NameField, string ParentField, string RootID, ref DataSet Dst)
        public myTreeView(string IDField, string NameField, string ParentField, string RootID, ref DataSet Dst)52

 
         {
{53
 _IDField = IDField;
            _IDField = IDField;54
 _NameField = NameField;
            _NameField = NameField;55
 _ParentField = ParentField;
            _ParentField = ParentField;56
 _RootID = RootID;
            _RootID = RootID;57
 _Dst = Dst;
            _Dst = Dst;58
 _Target = "mainFrame";
            _Target = "mainFrame";59
 _NavigateArg = "";
            _NavigateArg = "";60
 _ExpandLevel = 1;
            _ExpandLevel = 1;61
 }
        }62

63
 public myTreeView()
        public myTreeView()64

 
         {
{65
 }
        }66

67

 参数#region 参数
        参数#region 参数68

 /**//// <summary>
        /**//// <summary>69
 /// ID字段
        /// ID字段70
 /// </summary>
        /// </summary>71
 public string IDField
        public string IDField72

 
         {
{73

 set
            set  { _IDField = value; }
{ _IDField = value; }74

 get
            get  { return _IDField; }
{ return _IDField; }75
 }
        }76

77

 /**//// <summary>
        /**//// <summary>78
 /// Name字段
        /// Name字段79
 /// </summary>
        /// </summary>80
 public string NameField
        public string NameField81

 
         {
{82

 set
            set  { _NameField = value; }
{ _NameField = value; }83

 get
            get  { return _NameField; }
{ return _NameField; }84
 }
        }85

86

 /**//// <summary>
        /**//// <summary>87
 /// 父级字段
        /// 父级字段88
 /// </summary>
        /// </summary>89
 public string ParentField
        public string ParentField90

 
         {
{91

 set
            set  { _ParentField = value; }
{ _ParentField = value; }92

 get
            get  { return _ParentField; }
{ return _ParentField; }93
 }
        }94

95

 /**//// <summary>
        /**//// <summary>96
 /// 根节点号
        /// 根节点号97
 /// </summary>
        /// </summary>98
 public string RootID
        public string RootID99

 
         {
{100

 set
            set  { _RootID = value; }
{ _RootID = value; }101

 get
            get  { return _RootID; }
{ return _RootID; }102
 }
        }103

104

 /**//// <summary>
        /**//// <summary>105
 /// 超链接
        /// 超链接106
 /// </summary>
        /// </summary>107
 public string NavigateUrl
        public string NavigateUrl108

 
         {
{109

 set
            set  { _NavigateUrl = value; }
{ _NavigateUrl = value; }110

 get
            get  { return _NavigateUrl; }
{ return _NavigateUrl; }111
 }
        }112

113

 /**//// <summary>
        /**//// <summary>114
 /// 超链接参数字段
        /// 超链接参数字段115
 /// </summary>
        /// </summary>116
 public string NavigateArg
        public string NavigateArg117

 
         {
{118

 set
            set  { _NavigateArg = value; }
{ _NavigateArg = value; }119

 get
            get  { return _NavigateArg; }
{ return _NavigateArg; }120
 }
        }121

122

 /**//// <summary>
        /**//// <summary>123
 /// 页面名的字段
        /// 页面名的字段124
 /// </summary>
        /// </summary>125
 public string PageNameField
        public string PageNameField126

 
         {
{127

 set
            set  { _PageNameField = value; }
{ _PageNameField = value; }128

 get
            get  { return _PageNameField; }
{ return _PageNameField; }129
 }
        }130

131

132

 /**//// <summary>
        /**//// <summary>133
 /// 超链接目标
        /// 超链接目标134
 /// </summary>
        /// </summary>135
 public int ExpandLevel
        public int ExpandLevel136

 
         {
{137

 set
            set  { _ExpandLevel = value; }
{ _ExpandLevel = value; }138

 get
            get  { return _ExpandLevel; }
{ return _ExpandLevel; }139
 }
        }140

141

142

 /**//// <summary>
        /**//// <summary>143
 /// 超链接目标
        /// 超链接目标144
 /// </summary>
        /// </summary>145
 public string Target
        public string Target146

 
         {
{147

 set
            set  { _Target = value; }
{ _Target = value; }148

 get
            get  { return _Target; }
{ return _Target; }149
 }
        }150

151

 /**//// <summary>
        /**//// <summary>152
 /// 超链接目标
        /// 超链接目标153
 /// </summary>
        /// </summary>154
 public DataSet Dst
        public DataSet Dst155

 
         {
{156

 set
            set  { _Dst = value; }
{ _Dst = value; }157

 get
            get  { return _Dst; }
{ return _Dst; }158
 }
        }159
 #endregion
        #endregion160

161
 public void BindTree(System.Web.UI.WebControls.TreeView _myTree)
        public void BindTree(System.Web.UI.WebControls.TreeView _myTree)162

 
         {
{163
 _myTree.Nodes.Clear();
            _myTree.Nodes.Clear();164
 _myTree.MaxDataBindDepth = ExpandLevel;
            _myTree.MaxDataBindDepth = ExpandLevel;165

166
 InitTree(_myTree.Nodes, RootID);
            InitTree(_myTree.Nodes, RootID);167
 }
        }168

169
 private void InitTree(TreeNodeCollection _Nds, string _parentID)
        private void InitTree(TreeNodeCollection _Nds, string _parentID)170

 
         {
{171
 TreeNode tmpNd;
            TreeNode tmpNd;172
 DataRow[] rows = Dst.Tables[0].Select(ParentField + "=" + _parentID);
            DataRow[] rows = Dst.Tables[0].Select(ParentField + "=" + _parentID);173

174
 foreach (DataRow row in rows)
            foreach (DataRow row in rows)175

 
             {
{176
 tmpNd = new TreeNode();
                tmpNd = new TreeNode();177
 tmpNd.Value = row[IDField].ToString();
                tmpNd.Value = row[IDField].ToString();178
 tmpNd.Text = row[NameField].ToString();
                tmpNd.Text = row[NameField].ToString();179

180
 if (PageNameField != "" && PageNameField != null)
                if (PageNameField != "" && PageNameField != null)181

 
                 {
{182
 if (row[PageNameField].ToString() != "")
                    if (row[PageNameField].ToString() != "")183
 tmpNd.NavigateUrl =  ReturnPlus.GetAppPath() + row[PageNameField].ToString();
                        tmpNd.NavigateUrl =  ReturnPlus.GetAppPath() + row[PageNameField].ToString();184

185
 if (NavigateArg != "")
                    if (NavigateArg != "")186

 
                     {
{187
 if (row[NavigateArg].ToString() != null)
                        if (row[NavigateArg].ToString() != null)188
 tmpNd.NavigateUrl = String.Format(row[PageNameField].ToString(), row[NavigateArg]);
                            tmpNd.NavigateUrl = String.Format(row[PageNameField].ToString(), row[NavigateArg]);189
 }
                    }190
 }
                }191
 else
                else192

 
                 {
{193
 tmpNd.NavigateUrl = String.Format(NavigateUrl, row[NavigateArg]);
                    tmpNd.NavigateUrl = String.Format(NavigateUrl, row[NavigateArg]);194
 }
                }195

196
 if (tmpNd.NavigateUrl == "" || tmpNd.NavigateUrl == null)
                if (tmpNd.NavigateUrl == "" || tmpNd.NavigateUrl == null)197

 
                 {
{198
 //tmpNd.SelectAction = TreeNodeSelectAction.SelectExpand;
                    //tmpNd.SelectAction = TreeNodeSelectAction.SelectExpand;                199
 //tmpNd.NavigateUrl = "javascript:TreeView_ToggleNode(myTree_Data," + tmpNd. +",myTreen3,'l',myTreen3Nodes)"
                    //tmpNd.NavigateUrl = "javascript:TreeView_ToggleNode(myTree_Data," + tmpNd. +",myTreen3,'l',myTreen3Nodes)"200
 //tmpNd.NavigateUrl = "#";
                    //tmpNd.NavigateUrl = "#";201
 }
                }202
 else
                else203

 
                 {
{204
 tmpNd.Target = Target;
                    tmpNd.Target = Target;205
 }
                }206

207
 _Nds.Add(tmpNd);
                _Nds.Add(tmpNd);208
 InitTree(tmpNd.ChildNodes, tmpNd.Value);
                InitTree(tmpNd.ChildNodes, tmpNd.Value);209
 }
            }210
 }
        }211
 }
    }212
 }
}213

 
                     
                    
                 
                    
                 
 
                
            
        