zoukankan      html  css  js  c++  java
  • ASP.NET 递归 FindControl

        一般 FindControl 函数只能找到第一层子控件,像 GridView、FormView 之类的复合式控件,要寻找包含的子控件就非常麻烦,要找到父控件(容器),才能使用 FindControl 去找到子控件。而且一旦所有往上的父控件有任一层的变更时,就需要再去修改程序代码,这样就非常麻烦。
        为了解決此的问题,可以使用递归的方式來进行 FindControl 的操作。见下面的 FindControlEx 方法。
    代码
    /// <summary>
    /// 递归查找找指定ID的控件
    /// </summary>
    /// <param name="Parent">父控件(控件容器)</param>
    /// <param name="id">要查找的控件ID</param>
    /// <returns>回传符合ID的控件,若未找到则返回Null</returns>
    public static System.Web.UI.Control FindControlEx(System.Web.UI.Control parentControl, string id)
    {
        System.Web.UI.Control control 
    = null;
        
    //先使用 FindControl 去查找指定的子控件
        control = parentControl.FindControl(id);
        
    //如果未找到则往下层递归方式去查找
        if (control == null)
        {
            
    foreach (System.Web.UI.Control oChildCtrl in parentControl.Controls)
            {
                
    //以递归方式回调原函数
                control = FindControlEx(oChildCtrl, id);
                
    //如果找到指定控件则退出循环
                if (control != nullbreak;
            }
        }
        
    return control;
    }
  • 相关阅读:
    一些常用的正则表达式
    ASP.net国际化页面可以选择输出语言
    SQL 2008 数据表导入到 ORACLE 10g
    转载 SQL Server 2008中增强的汇总技巧
    类似于行转列的一种需求
    第一次
    很奇怪的一个SQL 语句
    MS SQL 中 FULL JOIN 的用法
    [转载]网络编辑必知常识:什么是PV、UV和PR值 zz
    寒假学习2实验一Linux系统的安装和常用命令
  • 原文地址:https://www.cnblogs.com/anjou/p/1623713.html
Copyright © 2011-2022 走看看