FindControl的源代码

今天在找控件级权限实现方案时找到了网上同志们提供的FindControl源代码,留此备用。

另外,以下链接是关于在各种情况下用FindControl找控制的资料:http://www.odetocode.com/Articles/116.aspx

 

public   virtual   Control   FindControl(string   id)
{
        return   this.FindControl(id,   0);
}

protected   virtual   Control   FindControl(string   id,   int   pathOffset)
{
        string   text;
        this.EnsureChildControls();
        if   (!this.flags[0x80])
        {
                Control   namingContainer   =   this.NamingContainer;
                if   (namingContainer   !=   null)
                {
                        return   namingContainer.FindControl(id,   pathOffset);
                }
                return   null;
        }


        if   (this.HasControls()   &&   (this._occasionalFields.NamedControls   ==   null))
        {
                this.EnsureNamedControlsTable();
        }


        if   ((this._occasionalFields   ==   null)   ||   (this._occasionalFields.NamedControls   ==   null))
        {
                return   null;
        }


        char[]   anyOf   =   new   char[]   {   '$ ',   ': '   };
        int   num   =   id.IndexOfAny(anyOf,   pathOffset);
        if   (num   ==   -1)
        {
                text   =   id.Substring(pathOffset);
                return   (this._occasionalFields.NamedControls[text]   as   Control);
        }


        text   =   id.Substring(pathOffset,   num   -   pathOffset);
        Control   control2   =   this._occasionalFields.NamedControls[text]   as   Control;
        if   (control2   ==   null)
        {
                return   null;
        }
        return   control2.FindControl(id,   num   +   1);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值