惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
D
DataBreaches.Net
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The GitHub Blog
The GitHub Blog
Blog — PlanetScale
Blog — PlanetScale
Microsoft Security Blog
Microsoft Security Blog
A
About on SuperTechFans
Vercel News
Vercel News
L
LangChain Blog
B
Blog RSS Feed
Y
Y Combinator Blog
IT之家
IT之家
H
Hackread – Cybersecurity News, Data Breaches, AI and More
GbyAI
GbyAI
V
V2EX
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
阮一峰的网络日志
阮一峰的网络日志
有赞技术团队
有赞技术团队
D
Docker
V
Visual Studio Blog
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
月光博客
月光博客

博客园 - Sunny

开发人员一定要加入收藏夹的网站(转载) 我写的一个小程序 tabs研究 dotnetnuke( modules /tabs )权限研究 数据库知识2 数据库学习1 asp.net缓存、企业程序库缓存及格式化日期 - Sunny - 博客园 可爱的外甥女 dotnetnuke 里profile 的使用 怎样写自己的ConfigurationHandler(DOTNETNUKE 研究)? 编写upload程序 多国技术总结 远程教育系统总结 项目(多国技术) 总结 页面验证码程序(C#) string与stringbuilder flyweigth享元设计模式与委托总结 dotnetnuke 本地化技术杂谈 怎样获取获取GridView里面的label
循环遍历一个控件方法
Sunny · 2006-04-05 · via 博客园 - Sunny

        public static StringBuilder RecursiveControl(Control ct)
        {
            StringBuilder sb 
= new StringBuilder();
            RecursiveControl(ct, 
0 ,sb);
            
return sb;
        }
public static void RecursiveControl(Control ct,int xc,StringBuilder sb)
        {
            xc
++;
            
            
if (ct != null)
            {
                
for (int i = 0; i < ct.Controls.Count; i++)
                {
                    
for (int j = 1; j < xc; j++)
                    {
                        sb.Append(
"-");
                    }
                    sb.Append(ct.Controls[i].ToString());
                    sb.Append(
"<br/>");
                    RecursiveControl(ct.Controls[i],xc,sb);
                }
            }
            
        }

调用方法:

        StringBuilder sb = SharedClass.RecursiveControl(DataList1);
        Response.Write(sb.ToString());