我这样循环页面控件
foreach (System.Web.UI.Control control in this.Controls[1].Controls)
                {
                    colName = control.ClientID;
                    if (colName.IndexOf(preId) != -1)
                    {
                        colName = colName.Replace(preId, "");
                        //都变成小写
                        colName = colName.ToLower();
                        //colName=colName.Replace("_","");                        if (col.ColumnName == colName)
                        {
                            flag = 1;
                            break;
                        }
                    }
                }
出现的问题:有时候用this.Controls[1].Controls.Count 并不能得到我想要的页面上真正的所有控件,而用this.Controls[2].Controls.Count 或者 this.Controls[3].Controls.Count....才能得到
假设index最大数为10; Controls[index].Count 得到最大控件数。 那么我怎么得到最大控件数时index值呢?注:两个索引间的Count值有可能相等;

解决方案 »

  1.   

    自己做沙发 顶出水面
    我是这样考虑的 但我自己知道这样做有漏洞
    //为了找到页面上所有的控件
                    int iCount1 = this.Controls[1].Controls.Count;
                    int iCount2 = this.Controls[2].Controls.Count;
                    int iCount3 = this.Controls[3].Controls.Count;
                    if (iCount1 > 0 && iCount2 > 0 && iCount3 > 0)
                    {
                        if (iCount1 > iCount2 && iCount1>iCount3)
                        {
                            index = 1;
                        }
                        else if ((iCount1 < iCount2 && iCount2 > iCount3) || (iCount1 > iCount2 && iCount2 > iCount3))
                        {
                            index = 2;
                        }
                        else if ((iCount1 < iCount2 && iCount2 < iCount3) || (iCount1 > iCount2 && iCount1 < iCount3))
                        {
                            index = 3;
                        }
                    }
      

  2.   

    并且像上面那么做 感觉比较死 还得有很多个 IF ELSE  不知道有没有牛人能想出更好点的办法。。
      

  3.   

    遍历页面的所有控件int len = Form.Controls.Count;
    for (int i = 0; i < len; i++)
    {
                Response.Write(Form.Controls[i].ClientID);
    }
      

  4.   

    上面的 如果页面上没有FORM 用的母版怎么办呢?
      

  5.   

    还有如果是在基类里面还能直接用FORM吗?
      

  6.   

    使用遍历,在CSDN上搜索下遍历