刚才已经看了很多遍例的例子了...试了一下,没一个管用- -|这么写的...大家帮忙看看问题出哪了目的:做一下提交页面的参数过滤        foreach (Control myControl in Page.Controls[1].Controls)
        {
            try 
            {
                if (((TextBox)myControl).Text.Contains("-"))
                { Response.Write(@"<script>alert(' 有非法字符串 ');</script>"); }        
            }
            catch { }
        }

解决方案 »

  1.   

    没有错误提示....能正常运行把.text改成.visible=false 方便看也一样控件还都显示的出来..
      

  2.   

    不会没有错误提示的,要是页面上有label这句((TextBox)myControl肯定会错
    为什么不报错因为你catch到错误了 并且catch里什么都没做,方法就已经结束了
    foreach (Control myControl in Page.Controls[1].Controls)
            {
              if(myControl is TextBox)
    {
    TextBox txt = myControl as TextBox;
            if (txt.Text.Contains("-"))
                    { Response.Write(@" <script>alert(' 有非法字符串 '); </script>");
    }
            }
    不过你要保证Page.Controls[1].Controls这里边有textbox不然也遍历不出来
    这是控件深度的问题了
      

  3.   

    再就是最好不要这样用try,可以先判断一下控件类型,是TextBox的再取
      

  4.   

    确实这个问题我前一段时间也遇见过
    Page.Controls[1].Controls改成this.form1.Controls
      

  5.   

    大哥我都说要注意你的控件深度
    你在不包含textbox的容器里边遍历 能出来才有鬼