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();
} 展开
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();
} 展开
3个回答
展开全部
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]
如果你的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]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
StringBuilder是一个不定长度的字符串,
意思是把page集合里面的Controls (3)动态添加到
str这个对象中
foreach 是完全遍历Page.Controls[3].Controls
我不知道Controls[3]是什么控件,调试应该能看到【3】是什么
意思是把page集合里面的Controls (3)动态添加到
str这个对象中
foreach 是完全遍历Page.Controls[3].Controls
我不知道Controls[3]是什么控件,调试应该能看到【3】是什么
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Controls[3]应该是个集合控件,他有子控件,你的foreach就是遍历了Control[3]对应控件下面的子控件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询