由Page.FindControl想到的Page控件树结构

本文介绍了一种在ASP.NET应用程序中通过递归函数查找特定控件的方法,并提供了一个具体的例子来展示如何实现这一过程。
      前两天同事让我帮他解决一个问题,大体就是在页面中通过控件ID找到并修改DataGrid中的一个DropDownList的SelectedValue,他通过Page.FindControl无法找到。记得以前发现过这个问题,以前就是通过在Page控件树中递归查找解决的,今天顺便对asp.net的Page控件树结构研究了一下。
      下面是我递归查找的函数:
 1 None.gif public   object  Myfindcontrol(Control parentcontrols, string  id)
 2 ExpandedBlockStart.gifContractedBlock.gif     dot.gif {
 3InBlock.gif        for (int i = 0; i < parentcontrols.Controls.Count; i++)
 4ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
 5InBlock.gif            if (parentcontrols.Controls[i].ClientID == id)
 6InBlock.gif                return parentcontrols.Controls[i];
 7InBlock.gif            else if (parentcontrols.Controls[i].Controls.Count > 0)
 8ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 9InBlock.gif                if(Myfindcontrol(parentcontrols.Controls[i], id)!=null)
10InBlock.gif                    return Myfindcontrol(parentcontrols.Controls[i], id);
11ExpandedSubBlockEnd.gif            }

12ExpandedSubBlockEnd.gif        }

13InBlock.gif        return null;
14ExpandedBlockEnd.gif    }

15 None.gif
      
None.gif < html >
None.gif
< body >
None.gif  
< h1 > Welcome to my Homepage! </ h1 >
None.gif  
< form  runat ="server" >
None.gif    What is your name?
None.gif    
< asp:TextBox  runat ="server"  ID ="txtName" ></ asp:TextBox >
None.gif    
< br  /> What is your gender?
None.gif    
< asp:DropDownList  runat ="server"  ID ="ddlGender" >
None.gif      
< asp:ListItem  Select ="True"  Value ="M" > Male </ asp:ListItem >
None.gif      
< asp:ListItem  Value ="F" > Female </ asp:ListItem >
None.gif      
< asp:ListItem  Value ="U" > Undecided </ asp:ListItem >
None.gif    
</ asp:DropDownList >
None.gif    
< br  />
None.gif    
< asp:Button  runat ="server"  Text ="Submit!" ></ asp:Button >
None.gif  
</ form >
None.gif
</ body >
None.gif
</ html >
None.gif


参考自 创建动态数据输入用户界面 ,本想自己写些东西,突然发现人家讲的已经很好,偷懒一下吧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值