C# 遍历页面中的控件

我学习一本C#的书籍,其中有一段"遍历页面中的控件"的代码不懂,请各位先生指教:protectedvoidButton1_Click(objectsender,Event... 我学习一本C#的书籍,其中有一段"遍历页面中的控件"的代码不懂,请各位先生指教:
protected void Button1_Click(object sender, EventArgs e)
{
StringBuilder str = new StringBuilder();
foreach (Control ctrl in this.Page.Controls[3].Controls)//这儿为什么还要弄个controls[3],而且是3而不是2?
{

str.Append(ctrl.ID + "<br />");
}

Literal1.Text = str.ToString();
}
展开
 我来答
19843240
2008-08-04 · TA获得超过343个赞
知道小有建树答主
回答量:267
采纳率:0%
帮助的人:239万
展开全部
StringBuilder是一个不定长度的字符串

如果你的page里有1,2,3,4,5 五个控件
它们在page.controls里是索引就分别是0,1,2,3,4,(i = ctrl.ID-1)
因为page.Controls[i],i(索引)是从0开始递增1的,
page.Controls[i].Controls[j]一样j是i里面的第j-1个子控件

此处的foreach ctrl in this.Page.Controls[3].Controls
相当于for(i=0,this.Page.Controls[3].Controls.length'子控件数',i++)

那么this.Page.Controls[3]就是"4"这个控件

this.Page.Controls[3].Controls就是"4"下面所有对像的集合,其中包含 4[n]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
weiguang1235
2008-08-03 · TA获得超过102个赞
知道答主
回答量:133
采纳率:0%
帮助的人:109万
展开全部
StringBuilder是一个不定长度的字符串,
意思是把page集合里面的Controls (3)动态添加到
str这个对象中
foreach 是完全遍历Page.Controls[3].Controls
我不知道Controls[3]是什么控件,调试应该能看到【3】是什么
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d905a4a
2008-08-03 · TA获得超过115个赞
知道小有建树答主
回答量:438
采纳率:0%
帮助的人:237万
展开全部
Controls[3]应该是个集合控件,他有子控件,你的foreach就是遍历了Control[3]对应控件下面的子控件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式